@mengine/medeo-client 1.3.1-alpha.0 → 1.3.1-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -44,8 +44,7 @@ boundary already fails rows whose media variants lack `external` or carry a
44
44
  media is an explicit caller decision, and no implicit historical merge or
45
45
  identity rewriting occurs. The
46
46
  compatibility reader reads physical facts directly from the media variant;
47
- Caption inline text still resolves its inline Asset through
48
- `physical-asset`.
47
+ Caption text is assembled from its required AudioScript composition and never stored in an inline Asset.
49
48
 
50
49
  `SequenceMarker` owns source/target ranges, duration, and time remapping. `Clip`
51
50
  owns clip properties such as volume; `Track` owns track properties. References
@@ -74,15 +73,25 @@ their follow, keep-absolute, cascade, or detach decisions into the same entity
74
73
  plan. A speech-overlap shift is explicit placement on the real visual Clips;
75
74
  an uncovered time interval does not require an invented empty-media entity.
76
75
 
77
- Voice links to its AudioScript through `audio-script-render`; Caption links to
78
- its source script and optional alignment Voice through separate provenance/alignment relations. External
79
- speech identity and physical storage key belong to the Voice Entity itself.
80
- `insertCaptionClip` creates a complete independent Caption placement;
81
- `upsertVoiceoverTake` accepts explicit `placement` for independent voice.
82
- AudioScript carries only text. `audio-script-marker` attaches directly assigned
83
- `segmentRanges` timing; those annotation Markers cannot be Clip display Markers.
84
- Caption styles belong to Caption; text can have a real inline text Asset rather
85
- than a fabricated Memota ID. Background Audio's Marker declares
76
+ Generated Voice links to a pre-existing PhoneticScript through `phonetic-script-render`.
77
+ Caption and PhoneticScript each compose a real AudioScript by directly holding `baseEntityIds`, an array that may compose multiple entities. AudioScript owns
78
+ `segments[].text`; assembly never automatically persists a copy on the variants. Read complete content
79
+ with `assembleCaptionContent` or `assemblePhoneticScriptContent`. Broken composition
80
+ fails explicitly. Same-name fields from different bases are rejected even for equal values and even if the variant declares that field. After base fields are unambiguous, explicit own fields may override them without mutating the bases. Recorded Audio/Video/Voice can be the ASR source via
81
+ `audio-script-source`, without creating a synthesis variant.
82
+
83
+ `insertCaptionClip` requires `baseEntityIds` and `selections`. Each selection
84
+ names a source `segmentId` and optionally a half-open Unicode code-point
85
+ `textRange: {start, end}`. This permits display re-segmentation without rewriting
86
+ the original script. `upsertVoiceoverTake` requires the real
87
+ `phoneticScriptEntityId` used for synthesis; its captions supply their own `baseEntityIds` and select the same script.
88
+ External speech identity and storage key stay on Voice.
89
+
90
+ AudioScript has no intrinsic Sequence and cannot enter a Clip. `audio-script-marker`
91
+ attaches directly assigned `segmentRanges` timing; annotation Markers never refer
92
+ to upstream Markers and cannot be Clip display Markers. Moving or aligning a
93
+ Caption changes its external display Marker, preserving intrinsic Caption extent.
94
+ Caption owns its styles and text selection. Background Audio's Marker declares
86
95
  `durationPolicy: 'timeline'`: its source duration stays factual,
87
96
  while the view fills the non-BGM timeline duration.
88
97
 
@@ -97,3 +106,9 @@ It rejects `video-document/entity-projection-v1` documents. Production entity
97
106
  tools and editor adapters must not fall back to it or raw `/updates` on failure.
98
107
  For an entity projection, `meta.version` is the committed entity revision; the
99
108
  Loro version vector remains the transport-sync cursor.
109
+
110
+ ### Transparent variant fields in the DSL sandbox
111
+
112
+ `entities.get/list` return complete assembled fields. Consumers do not query base IDs or merge source payloads. `entities.update` patches supplied fields, preserves omitted fields, and routes inherited fields to their declaring entity. Explicit own-field declarations use `entities.declareFields`; these override unambiguous base fields without changing the base. Persisted entity rows and command payloads contain owned fields only. Base collisions are validated before own overrides.
113
+
114
+ `prepareCaptionContent` accepts caption authoring intent and handles source composition, visible text selection, and preservation of existing intrinsic timing inside the SDK.