Phase 2: Domänenmodell nach §10.1 (plattformneutral, Pydantic)

- Project/Composition/Layer/Source/EffectInstance/MediaAsset/OutputSurface/
  PresetScene mit schema_version 1 (§10, §24.4)
- Validierungen: 2 Effekt-Slots (§4.1), eindeutige Layer-IDs/Z-Reihenfolge,
  max 64 Layer, in<out-Punkte, speed ±4x (§16.6), portable relative Pfade
  ohne Traversal (§9.1), eindeutige Asset-Pfade (§13.3), Canvas-Bounds bis
  8192 (§3.3), Adjustment/Group ohne Quelle (§12.3)
- OutputSurface mit Canvas-Slice-Modell (§22.2 Mapping-Datenmodell ab V1)
- PresetScene: normalisierter Snapshot + Übergänge V1 (§18.1, §18.3)
- keine Backend-Typen im Modell (§12.6)
- 24 Unit-Tests; Gesamtsuite 223 gruen, Ruff gruen
This commit is contained in:
HMS MediaEngine Agent
2026-09-11 01:15:11 +02:00
parent e4e76a7ede
commit 402ff7268c
3 changed files with 745 additions and 0 deletions
+44
View File
@@ -2,6 +2,29 @@
from hms_domain.identity import NodeIdentity, NodeRole
from hms_domain.ids import new_node_id, new_uuid, persistent_node_id
from hms_domain.model import (
DOMAIN_SCHEMA_VERSION,
BlendMode,
ColorControls,
ColorSpace,
Composition,
Crop,
EffectInstance,
EffectScope,
Layer,
LayerType,
LoopMode,
MediaAsset,
OutputSurface,
PresetScene,
Project,
QualityMode,
Source,
SourceType,
Transform2D,
TransitionType,
TransportState,
)
__all__ = [
"new_uuid",
@@ -9,4 +32,25 @@ __all__ = [
"persistent_node_id",
"NodeIdentity",
"NodeRole",
"DOMAIN_SCHEMA_VERSION",
"Project",
"Composition",
"Layer",
"LayerType",
"Source",
"SourceType",
"EffectInstance",
"EffectScope",
"BlendMode",
"Transform2D",
"Crop",
"ColorControls",
"ColorSpace",
"LoopMode",
"TransportState",
"QualityMode",
"MediaAsset",
"OutputSurface",
"PresetScene",
"TransitionType",
]