# export_abc_all()

씬의 모든 레퍼런스를 지정된 폴더에 Alembic으로 일괄 내보냅니다.  
파일명은 각 레퍼런스의 네임스페이스를 기준으로 자동 생성됩니다. (`{namespace}.abc`)

### 시그니처
```python
api.export_abc_all(output_folder: str, abc_options: dict = None, preset: str = None) -> dict
```

### 파라미터
| 파라미터 | 타입 | 설명 |
| --- | --- | --- |
| `output_folder` | `str` | 출력 폴더 절대 경로 (이미 존재해야 함) |
| `abc_options` | `dict` | Alembic 옵션 오버라이드 |
| `preset` | `str` | 사용할 프리셋 이름 (예: `"Unreal_UE5"`, `"Unity_ABC"`) |

### 반환값
```python
{
    "success": bool,
    "message": str,
    "exported_count": int,
    "failed_count": int,
    "results": [
        {
            "slot": int,
            "name": str,
            "success": bool,
            "output_path": str,   # on success
            "error": str,         # on failure
        },
        ...
    ]
}
```

### 예외
| 예외 | 조건 |
| --- | --- |
| `ValueError` | 출력 폴더가 존재하지 않을 때, 없는 preset 이름 |
| `TypeError` | `abc_options`가 `dict`가 아닐 때 |

### 예제
```python
from os_fast_ref.api import FastRefAPI

api = FastRefAPI()
api.refresh()

# Default preset
result = api.export_abc_all(output_folder=r"J:\output")
print(f"Exported: {result['exported_count']}, Failed: {result['failed_count']}")

# UE5 — meshes only for all slots
result = api.export_abc_all(
    output_folder=r"J:\output",
    preset="Unreal_UE5",
    abc_options={"ExportMeshes": True, "ExportBones": False},
)

for r in result["results"]:
    status = "OK" if r["success"] else "FAIL"
    print(f"  [{r['slot']}] {r['name']}: {status}")
```

---