@patterkit/model 0.23.0 → 0.25.0
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/dist/index.cjs +2107 -13
- package/dist/index.d.cts +58 -14
- package/dist/index.d.ts +58 -14
- package/dist/index.js +2097 -12
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -2,6 +2,33 @@ import { AstNode } from '@wildwinter/expr';
|
|
|
2
2
|
export { RESERVED_PROPERTY_NAMES, isCaseOnlyPropertyName, isValidPropertyName, propertyNameify } from '@wildwinter/expr';
|
|
3
3
|
export { gameIdify, isValidGameId } from '@wildwinter/toolkit';
|
|
4
4
|
|
|
5
|
+
/** What a speech unit is: a syllable (the mouth opens), a beat with the mouth shut (っ), or a pause. */
|
|
6
|
+
type SpeechUnitKind = "syllable" | "closed" | "pause";
|
|
7
|
+
/** One unit of a line as it would be spoken. `start` and `end` are code-point offsets into the text, end exclusive. */
|
|
8
|
+
interface SpeechUnit {
|
|
9
|
+
kind: SpeechUnitKind;
|
|
10
|
+
weight: number;
|
|
11
|
+
start: number;
|
|
12
|
+
end: number;
|
|
13
|
+
}
|
|
14
|
+
/** A digit's weight: most read as one or two syllables. */
|
|
15
|
+
declare const SPEECH_DIGIT_WEIGHT = 1.5;
|
|
16
|
+
/** A Han character's weight in Japanese text. */
|
|
17
|
+
declare const SPEECH_KANJI_WEIGHT = 2;
|
|
18
|
+
/** A short pause's weight (`,` `;` `、`), and a long one's (`.` `?` `。`). */
|
|
19
|
+
declare const SPEECH_PAUSE_SHORT_WEIGHT = 1;
|
|
20
|
+
declare const SPEECH_PAUSE_LONG_WEIGHT = 2;
|
|
21
|
+
/**
|
|
22
|
+
* A line broken into the units it would be spoken in: its syllables, its beats with the mouth shut, and its pauses,
|
|
23
|
+
* in order, each with a weight. `locale` is the language the line is spoken in (the project's main language, not the
|
|
24
|
+
* one being shown); it decides English's and French's silent e, and Japanese kanji, which also apply when the line
|
|
25
|
+
* has any kana in it.
|
|
26
|
+
*/
|
|
27
|
+
declare function speechUnits(text: string, locale?: string): SpeechUnit[];
|
|
28
|
+
/** How many syllables a line would be spoken in: its syllables' and shut beats' weights, pauses aside. `locale` is
|
|
29
|
+
* the language it's spoken in, as for `speechUnits`. */
|
|
30
|
+
declare function countSyllables(text: string, locale?: string): number;
|
|
31
|
+
|
|
5
32
|
type ScalarValue = boolean | number | string | string[];
|
|
6
33
|
/** Developer-defined host metadata (spec §17). Opaque to Patter. */
|
|
7
34
|
type GameData = Record<string, unknown>;
|
|
@@ -373,7 +400,7 @@ type GrammaticalGender = string;
|
|
|
373
400
|
* not enforced - a project may use any string (see `GrammaticalGender`). */
|
|
374
401
|
declare const COMMON_GENDERS: readonly ["male", "female", "neuter"];
|
|
375
402
|
interface CastMember {
|
|
376
|
-
/**
|
|
403
|
+
/** The character ID (matched by a beat's `character`); language-neutral key. */
|
|
377
404
|
name: string;
|
|
378
405
|
/** Localised player-facing name - a localisation id (project-level strings). */
|
|
379
406
|
displayName?: string;
|
|
@@ -397,7 +424,7 @@ interface CastMember {
|
|
|
397
424
|
}
|
|
398
425
|
/** A speaker qualifier (a screenplay's character extension): `V.O.`, `O.S.`, `RADIO`, or the project's own.
|
|
399
426
|
* A line stores the `gameId`; the `name` is what the cue, Play, and the scripts show, and is localised as a
|
|
400
|
-
*
|
|
427
|
+
* character name is (`qualifierStringKey`). */
|
|
401
428
|
interface SpeakerQualifier {
|
|
402
429
|
/** What code switches on, and what a line stores. Unique in the project; hyphen-slug form (`gameIdify`). */
|
|
403
430
|
gameId: string;
|
|
@@ -431,17 +458,27 @@ declare const DEFAULT_PAD_AFTER = 0.6;
|
|
|
431
458
|
/** The range validation keeps a `padAfter` or `padAfterDefault` within, in seconds. */
|
|
432
459
|
declare const PAD_AFTER_MIN = -10;
|
|
433
460
|
declare const PAD_AFTER_MAX = 60;
|
|
434
|
-
/**
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
declare const
|
|
461
|
+
/** How many syllables a second a line with no recording is timed at, unless the project sets its own
|
|
462
|
+
* (`estimateSyllablesPerSecond`), and the range validation keeps a project's within. */
|
|
463
|
+
declare const DEFAULT_ESTIMATE_SYLLABLES_PER_SECOND = 4;
|
|
464
|
+
declare const ESTIMATE_SYLLABLES_PER_SECOND_MIN = 2;
|
|
465
|
+
declare const ESTIMATE_SYLLABLES_PER_SECOND_MAX = 10;
|
|
466
|
+
/** The shortest and longest a line with no recording lasts, in seconds (`estimateLineDuration`). The shortest is a
|
|
467
|
+
* speaking time, the least a spoken word plausibly takes, not a reading time: see SUBTITLE_READING_MIN. */
|
|
468
|
+
declare const LINE_DURATION_MIN = 0.5;
|
|
438
469
|
declare const LINE_DURATION_MAX = 18;
|
|
439
|
-
/**
|
|
440
|
-
*
|
|
441
|
-
*
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
470
|
+
/** The least time a line's text should stay on screen to be read, in seconds, whether or not the line is that long:
|
|
471
|
+
* for a tool that shows a line as a subtitle or overhead text, which keeps it up at least this long after a shorter
|
|
472
|
+
* line ends, overlapping the next if it must. The line itself still ends when it's said (`estimateLineDuration`). */
|
|
473
|
+
declare const SUBTITLE_READING_MIN = 1.5;
|
|
474
|
+
/** How long a line with no recording lasts, in seconds: the total weight of its speech units (its syllables and its
|
|
475
|
+
* pauses, `speechUnits`) at `syllablesPerSecond` (default 4, the project's `estimateSyllablesPerSecond` when it
|
|
476
|
+
* sets one), clamped to 0.5 to 18 seconds. `text` and `locale` are the line as it's spoken, in the project's main
|
|
477
|
+
* language (a line result's `spokenText` and `spokenLocale`), never a translation being shown. This is the one
|
|
478
|
+
* rule every Patter tool and runtime times a line by: Patterpad's Play window, the playable HTML page, and the
|
|
479
|
+
* Unity, Unreal, and Godot runtimes, which the conformance corpus holds to the same numbers. A rate that isn't a
|
|
480
|
+
* positive number is the default. A line with a recording lasts as long as the recording, whatever this says. */
|
|
481
|
+
declare function estimateLineDuration(text: string, locale?: string, syllablesPerSecond?: number): number;
|
|
445
482
|
/** A qualifier as it reaches a compiled bundle: its `gameId` and authored name (the unlocalised fallback). */
|
|
446
483
|
interface BundleQualifier {
|
|
447
484
|
gameId: string;
|
|
@@ -750,6 +787,10 @@ interface ProjectFile {
|
|
|
750
787
|
/** The project's default `padAfter` for every line and text beat that sets none and has no default above it.
|
|
751
788
|
* Absent = `DEFAULT_PAD_AFTER`. */
|
|
752
789
|
padAfterDefault?: number;
|
|
790
|
+
/** How many syllables a second a line with no recording is timed at (`estimateLineDuration`), from 2 to 10.
|
|
791
|
+
* Only estimates use it: a line with a recording lasts as long as the recording. Absent =
|
|
792
|
+
* `DEFAULT_ESTIMATE_SYLLABLES_PER_SECOND`. */
|
|
793
|
+
estimateSyllablesPerSecond?: number;
|
|
753
794
|
/** Localise text lines in dialogue scenes (design/proposals/action-text.md). Off (absent) by default: a
|
|
754
795
|
* dialogue scene's text beats (`isDialogueScene`) are then ACTION, left out of the loc files and the
|
|
755
796
|
* written word counts, and compiled with `action: true`. On: they're localised and shown as a text
|
|
@@ -816,7 +857,7 @@ declare const PROJECT_LOCALE_SCENE = "@project";
|
|
|
816
857
|
* CastMember's `displayName`; the runtime resolves a character's shown name through this key. */
|
|
817
858
|
declare function castStringKey(name: string): string;
|
|
818
859
|
/** The project-level loc-string key for a speaker qualifier's shown name, e.g. `qualifier:vo`. Resolved as a
|
|
819
|
-
*
|
|
860
|
+
* character name is: the active locale, then the default locale, then the authored `name`. */
|
|
820
861
|
declare function qualifierStringKey(gameId: string): string;
|
|
821
862
|
/** The project-level loc-string key for one character's own label with one qualifier, e.g. `speaker:PLAYER:vo`:
|
|
822
863
|
* only for a pair someone has overridden (`CastMember.qualifierLabels`). Every other pair's label is built from
|
|
@@ -1166,6 +1207,9 @@ interface Bundle {
|
|
|
1166
1207
|
speakerPattern?: string;
|
|
1167
1208
|
/** The project's own `padAfterDefault`, when it sets one; absent = `DEFAULT_PAD_AFTER`. */
|
|
1168
1209
|
padAfterDefault?: number;
|
|
1210
|
+
/** The project's own `estimateSyllablesPerSecond`, when it sets one; absent =
|
|
1211
|
+
* `DEFAULT_ESTIMATE_SYLLABLES_PER_SECOND`. */
|
|
1212
|
+
estimateSyllablesPerSecond?: number;
|
|
1169
1213
|
properties?: PropertyDecl[];
|
|
1170
1214
|
/** Host / world scope declarations, baked from the project so the runtime can self-back a declared
|
|
1171
1215
|
* scope (`@world`, ...) when no host resolver claims its token. Absent = no host scopes. */
|
|
@@ -1460,4 +1504,4 @@ interface ExtensionFieldDecl {
|
|
|
1460
1504
|
/** A node's extension values in a bundle: extension id -> field -> value, raw. */
|
|
1461
1505
|
type NodeExtensions = Record<string, Record<string, unknown>>;
|
|
1462
1506
|
|
|
1463
|
-
export { AUTHORING_SCHEMA, type AuthoringFile, type Beat, type Block, type Bundle, type BundleCastMember, type BundleExtension, type BundleQualifier, COMMON_GENDERS, type CaptionDelimiters, type CastMember, type Comment, type CommentMessage, type CommentRange, type CompiledBlock, type CompiledEffect, type CompiledGroup, type CompiledScene, type CompiledSnippet, type CoverageDriver, DEFAULT_CAPTION_CHARACTER, DEFAULT_CAPTION_DELIMITERS, DEFAULT_DOCUMENTATION_CLASSES, DEFAULT_LAYOUT, DEFAULT_PAD_AFTER, DEFAULT_QUALIFIERS, DEFAULT_RECORDING_STATUSES, DEFAULT_SPEAKER_PATTERN, DEFAULT_WRITING_STATUSES, type DocLine, type DocumentationClass, EXTENSIONS_DIR, EXTENSION_SCHEMA, EXTENSION_SHARD, type EditRecord, type Effect, type EngineSave, type EstimatingConfig, type Expression, type ExtensionFieldDecl, type ExtensionShard, FLOW_SCHEMA, type FlowCursor, type FlowFile, type FlowNode, type FlowSnapshot, type FlowState, type FlowValues, type GameData, type GameDataField, type GameDataFieldType, type GameDataFields, type GameDataNodeKind, type GameEventBeat, type GrammaticalGender, type Group, HANDOFF_SCHEMA, type HandoffFile, type HandoffImport, type HandoffLine, type HandoffRow, type HostScopeDecl, type HostScopeRegistry, type HostScopeSpec, type Jump, type JumpTarget,
|
|
1507
|
+
export { AUTHORING_SCHEMA, type AuthoringFile, type Beat, type Block, type Bundle, type BundleCastMember, type BundleExtension, type BundleQualifier, COMMON_GENDERS, type CaptionDelimiters, type CastMember, type Comment, type CommentMessage, type CommentRange, type CompiledBlock, type CompiledEffect, type CompiledGroup, type CompiledScene, type CompiledSnippet, type CoverageDriver, DEFAULT_CAPTION_CHARACTER, DEFAULT_CAPTION_DELIMITERS, DEFAULT_DOCUMENTATION_CLASSES, DEFAULT_ESTIMATE_SYLLABLES_PER_SECOND, DEFAULT_LAYOUT, DEFAULT_PAD_AFTER, DEFAULT_QUALIFIERS, DEFAULT_RECORDING_STATUSES, DEFAULT_SPEAKER_PATTERN, DEFAULT_WRITING_STATUSES, type DocLine, type DocumentationClass, ESTIMATE_SYLLABLES_PER_SECOND_MAX, ESTIMATE_SYLLABLES_PER_SECOND_MIN, EXTENSIONS_DIR, EXTENSION_SCHEMA, EXTENSION_SHARD, type EditRecord, type Effect, type EngineSave, type EstimatingConfig, type Expression, type ExtensionFieldDecl, type ExtensionShard, FLOW_SCHEMA, type FlowCursor, type FlowFile, type FlowNode, type FlowSnapshot, type FlowState, type FlowValues, type GameData, type GameDataField, type GameDataFieldType, type GameDataFields, type GameDataNodeKind, type GameEventBeat, type GrammaticalGender, type Group, HANDOFF_SCHEMA, type HandoffFile, type HandoffImport, type HandoffLine, type HandoffRow, type HostScopeDecl, type HostScopeRegistry, type HostScopeSpec, type Jump, type JumpTarget, LINE_DURATION_MAX, LINE_DURATION_MIN, type LineBeat, type LocaleFile, MANIFEST_EXTENSION, type NodeExtensions, PAD_AFTER_MAX, PAD_AFTER_MIN, PROJECT_EXTENSION_STEM, PROJECT_LOCALE_SCENE, PROJECT_SCHEMA, type ProjectDictionary, type ProjectExtension, type ProjectFile, type ProjectLayout, type PromptBeat, type PropertyDecl, type PropertyType, RERECORD_STATUS, RERECORD_STATUS_DECL, type RecordingFolder, type RecordingStatusDecl, SAVE_SCHEMA, SAVE_VERSION, SPEAKER_PATTERN_KEY, SPEECH_DIGIT_WEIGHT, SPEECH_KANJI_WEIGHT, SPEECH_PAUSE_LONG_WEIGHT, SPEECH_PAUSE_SHORT_WEIGHT, STRINGS_SCHEMA, SUBTITLE_READING_MIN, type SaveEnvelope, type SaveGame, type SaveGameV3, type SavedChoice, type SavedChoiceOption, type SavedChoicePrompt, type ScalarValue, type Scene, type SceneFolder, type SceneFolderLayout, type SceneNavRow, type Selector, type SelectorExhaust, type SelectorOrder, type SelectorSnapshot, type SequenceOptions, type Snippet, type SpeakerQualifier, type SpeechUnit, type SpeechUnitKind, type StackFrame, type Suggestion, type SuggestionSource, type TextBeat, UNRESOLVED_KEY, type VcsKind, type WritingStatusDecl, castStringKey, countSyllables, deriveRecordingFolders, effectiveGameId, estimateLineDuration, formatSpeakerLabel, isContentlessBeat, isDialogueScene, projectLayout, projectQualifiers, qualifierStringKey, resolveSceneRef, sceneAddressIndex, sceneFolderLayout, sceneFolderPath, speakerLabelKey, speechUnits, textIsAction, usedQualifiers, usedSpeakerPairs, walkNodes };
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,33 @@ import { AstNode } from '@wildwinter/expr';
|
|
|
2
2
|
export { RESERVED_PROPERTY_NAMES, isCaseOnlyPropertyName, isValidPropertyName, propertyNameify } from '@wildwinter/expr';
|
|
3
3
|
export { gameIdify, isValidGameId } from '@wildwinter/toolkit';
|
|
4
4
|
|
|
5
|
+
/** What a speech unit is: a syllable (the mouth opens), a beat with the mouth shut (っ), or a pause. */
|
|
6
|
+
type SpeechUnitKind = "syllable" | "closed" | "pause";
|
|
7
|
+
/** One unit of a line as it would be spoken. `start` and `end` are code-point offsets into the text, end exclusive. */
|
|
8
|
+
interface SpeechUnit {
|
|
9
|
+
kind: SpeechUnitKind;
|
|
10
|
+
weight: number;
|
|
11
|
+
start: number;
|
|
12
|
+
end: number;
|
|
13
|
+
}
|
|
14
|
+
/** A digit's weight: most read as one or two syllables. */
|
|
15
|
+
declare const SPEECH_DIGIT_WEIGHT = 1.5;
|
|
16
|
+
/** A Han character's weight in Japanese text. */
|
|
17
|
+
declare const SPEECH_KANJI_WEIGHT = 2;
|
|
18
|
+
/** A short pause's weight (`,` `;` `、`), and a long one's (`.` `?` `。`). */
|
|
19
|
+
declare const SPEECH_PAUSE_SHORT_WEIGHT = 1;
|
|
20
|
+
declare const SPEECH_PAUSE_LONG_WEIGHT = 2;
|
|
21
|
+
/**
|
|
22
|
+
* A line broken into the units it would be spoken in: its syllables, its beats with the mouth shut, and its pauses,
|
|
23
|
+
* in order, each with a weight. `locale` is the language the line is spoken in (the project's main language, not the
|
|
24
|
+
* one being shown); it decides English's and French's silent e, and Japanese kanji, which also apply when the line
|
|
25
|
+
* has any kana in it.
|
|
26
|
+
*/
|
|
27
|
+
declare function speechUnits(text: string, locale?: string): SpeechUnit[];
|
|
28
|
+
/** How many syllables a line would be spoken in: its syllables' and shut beats' weights, pauses aside. `locale` is
|
|
29
|
+
* the language it's spoken in, as for `speechUnits`. */
|
|
30
|
+
declare function countSyllables(text: string, locale?: string): number;
|
|
31
|
+
|
|
5
32
|
type ScalarValue = boolean | number | string | string[];
|
|
6
33
|
/** Developer-defined host metadata (spec §17). Opaque to Patter. */
|
|
7
34
|
type GameData = Record<string, unknown>;
|
|
@@ -373,7 +400,7 @@ type GrammaticalGender = string;
|
|
|
373
400
|
* not enforced - a project may use any string (see `GrammaticalGender`). */
|
|
374
401
|
declare const COMMON_GENDERS: readonly ["male", "female", "neuter"];
|
|
375
402
|
interface CastMember {
|
|
376
|
-
/**
|
|
403
|
+
/** The character ID (matched by a beat's `character`); language-neutral key. */
|
|
377
404
|
name: string;
|
|
378
405
|
/** Localised player-facing name - a localisation id (project-level strings). */
|
|
379
406
|
displayName?: string;
|
|
@@ -397,7 +424,7 @@ interface CastMember {
|
|
|
397
424
|
}
|
|
398
425
|
/** A speaker qualifier (a screenplay's character extension): `V.O.`, `O.S.`, `RADIO`, or the project's own.
|
|
399
426
|
* A line stores the `gameId`; the `name` is what the cue, Play, and the scripts show, and is localised as a
|
|
400
|
-
*
|
|
427
|
+
* character name is (`qualifierStringKey`). */
|
|
401
428
|
interface SpeakerQualifier {
|
|
402
429
|
/** What code switches on, and what a line stores. Unique in the project; hyphen-slug form (`gameIdify`). */
|
|
403
430
|
gameId: string;
|
|
@@ -431,17 +458,27 @@ declare const DEFAULT_PAD_AFTER = 0.6;
|
|
|
431
458
|
/** The range validation keeps a `padAfter` or `padAfterDefault` within, in seconds. */
|
|
432
459
|
declare const PAD_AFTER_MIN = -10;
|
|
433
460
|
declare const PAD_AFTER_MAX = 60;
|
|
434
|
-
/**
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
declare const
|
|
461
|
+
/** How many syllables a second a line with no recording is timed at, unless the project sets its own
|
|
462
|
+
* (`estimateSyllablesPerSecond`), and the range validation keeps a project's within. */
|
|
463
|
+
declare const DEFAULT_ESTIMATE_SYLLABLES_PER_SECOND = 4;
|
|
464
|
+
declare const ESTIMATE_SYLLABLES_PER_SECOND_MIN = 2;
|
|
465
|
+
declare const ESTIMATE_SYLLABLES_PER_SECOND_MAX = 10;
|
|
466
|
+
/** The shortest and longest a line with no recording lasts, in seconds (`estimateLineDuration`). The shortest is a
|
|
467
|
+
* speaking time, the least a spoken word plausibly takes, not a reading time: see SUBTITLE_READING_MIN. */
|
|
468
|
+
declare const LINE_DURATION_MIN = 0.5;
|
|
438
469
|
declare const LINE_DURATION_MAX = 18;
|
|
439
|
-
/**
|
|
440
|
-
*
|
|
441
|
-
*
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
470
|
+
/** The least time a line's text should stay on screen to be read, in seconds, whether or not the line is that long:
|
|
471
|
+
* for a tool that shows a line as a subtitle or overhead text, which keeps it up at least this long after a shorter
|
|
472
|
+
* line ends, overlapping the next if it must. The line itself still ends when it's said (`estimateLineDuration`). */
|
|
473
|
+
declare const SUBTITLE_READING_MIN = 1.5;
|
|
474
|
+
/** How long a line with no recording lasts, in seconds: the total weight of its speech units (its syllables and its
|
|
475
|
+
* pauses, `speechUnits`) at `syllablesPerSecond` (default 4, the project's `estimateSyllablesPerSecond` when it
|
|
476
|
+
* sets one), clamped to 0.5 to 18 seconds. `text` and `locale` are the line as it's spoken, in the project's main
|
|
477
|
+
* language (a line result's `spokenText` and `spokenLocale`), never a translation being shown. This is the one
|
|
478
|
+
* rule every Patter tool and runtime times a line by: Patterpad's Play window, the playable HTML page, and the
|
|
479
|
+
* Unity, Unreal, and Godot runtimes, which the conformance corpus holds to the same numbers. A rate that isn't a
|
|
480
|
+
* positive number is the default. A line with a recording lasts as long as the recording, whatever this says. */
|
|
481
|
+
declare function estimateLineDuration(text: string, locale?: string, syllablesPerSecond?: number): number;
|
|
445
482
|
/** A qualifier as it reaches a compiled bundle: its `gameId` and authored name (the unlocalised fallback). */
|
|
446
483
|
interface BundleQualifier {
|
|
447
484
|
gameId: string;
|
|
@@ -750,6 +787,10 @@ interface ProjectFile {
|
|
|
750
787
|
/** The project's default `padAfter` for every line and text beat that sets none and has no default above it.
|
|
751
788
|
* Absent = `DEFAULT_PAD_AFTER`. */
|
|
752
789
|
padAfterDefault?: number;
|
|
790
|
+
/** How many syllables a second a line with no recording is timed at (`estimateLineDuration`), from 2 to 10.
|
|
791
|
+
* Only estimates use it: a line with a recording lasts as long as the recording. Absent =
|
|
792
|
+
* `DEFAULT_ESTIMATE_SYLLABLES_PER_SECOND`. */
|
|
793
|
+
estimateSyllablesPerSecond?: number;
|
|
753
794
|
/** Localise text lines in dialogue scenes (design/proposals/action-text.md). Off (absent) by default: a
|
|
754
795
|
* dialogue scene's text beats (`isDialogueScene`) are then ACTION, left out of the loc files and the
|
|
755
796
|
* written word counts, and compiled with `action: true`. On: they're localised and shown as a text
|
|
@@ -816,7 +857,7 @@ declare const PROJECT_LOCALE_SCENE = "@project";
|
|
|
816
857
|
* CastMember's `displayName`; the runtime resolves a character's shown name through this key. */
|
|
817
858
|
declare function castStringKey(name: string): string;
|
|
818
859
|
/** The project-level loc-string key for a speaker qualifier's shown name, e.g. `qualifier:vo`. Resolved as a
|
|
819
|
-
*
|
|
860
|
+
* character name is: the active locale, then the default locale, then the authored `name`. */
|
|
820
861
|
declare function qualifierStringKey(gameId: string): string;
|
|
821
862
|
/** The project-level loc-string key for one character's own label with one qualifier, e.g. `speaker:PLAYER:vo`:
|
|
822
863
|
* only for a pair someone has overridden (`CastMember.qualifierLabels`). Every other pair's label is built from
|
|
@@ -1166,6 +1207,9 @@ interface Bundle {
|
|
|
1166
1207
|
speakerPattern?: string;
|
|
1167
1208
|
/** The project's own `padAfterDefault`, when it sets one; absent = `DEFAULT_PAD_AFTER`. */
|
|
1168
1209
|
padAfterDefault?: number;
|
|
1210
|
+
/** The project's own `estimateSyllablesPerSecond`, when it sets one; absent =
|
|
1211
|
+
* `DEFAULT_ESTIMATE_SYLLABLES_PER_SECOND`. */
|
|
1212
|
+
estimateSyllablesPerSecond?: number;
|
|
1169
1213
|
properties?: PropertyDecl[];
|
|
1170
1214
|
/** Host / world scope declarations, baked from the project so the runtime can self-back a declared
|
|
1171
1215
|
* scope (`@world`, ...) when no host resolver claims its token. Absent = no host scopes. */
|
|
@@ -1460,4 +1504,4 @@ interface ExtensionFieldDecl {
|
|
|
1460
1504
|
/** A node's extension values in a bundle: extension id -> field -> value, raw. */
|
|
1461
1505
|
type NodeExtensions = Record<string, Record<string, unknown>>;
|
|
1462
1506
|
|
|
1463
|
-
export { AUTHORING_SCHEMA, type AuthoringFile, type Beat, type Block, type Bundle, type BundleCastMember, type BundleExtension, type BundleQualifier, COMMON_GENDERS, type CaptionDelimiters, type CastMember, type Comment, type CommentMessage, type CommentRange, type CompiledBlock, type CompiledEffect, type CompiledGroup, type CompiledScene, type CompiledSnippet, type CoverageDriver, DEFAULT_CAPTION_CHARACTER, DEFAULT_CAPTION_DELIMITERS, DEFAULT_DOCUMENTATION_CLASSES, DEFAULT_LAYOUT, DEFAULT_PAD_AFTER, DEFAULT_QUALIFIERS, DEFAULT_RECORDING_STATUSES, DEFAULT_SPEAKER_PATTERN, DEFAULT_WRITING_STATUSES, type DocLine, type DocumentationClass, EXTENSIONS_DIR, EXTENSION_SCHEMA, EXTENSION_SHARD, type EditRecord, type Effect, type EngineSave, type EstimatingConfig, type Expression, type ExtensionFieldDecl, type ExtensionShard, FLOW_SCHEMA, type FlowCursor, type FlowFile, type FlowNode, type FlowSnapshot, type FlowState, type FlowValues, type GameData, type GameDataField, type GameDataFieldType, type GameDataFields, type GameDataNodeKind, type GameEventBeat, type GrammaticalGender, type Group, HANDOFF_SCHEMA, type HandoffFile, type HandoffImport, type HandoffLine, type HandoffRow, type HostScopeDecl, type HostScopeRegistry, type HostScopeSpec, type Jump, type JumpTarget,
|
|
1507
|
+
export { AUTHORING_SCHEMA, type AuthoringFile, type Beat, type Block, type Bundle, type BundleCastMember, type BundleExtension, type BundleQualifier, COMMON_GENDERS, type CaptionDelimiters, type CastMember, type Comment, type CommentMessage, type CommentRange, type CompiledBlock, type CompiledEffect, type CompiledGroup, type CompiledScene, type CompiledSnippet, type CoverageDriver, DEFAULT_CAPTION_CHARACTER, DEFAULT_CAPTION_DELIMITERS, DEFAULT_DOCUMENTATION_CLASSES, DEFAULT_ESTIMATE_SYLLABLES_PER_SECOND, DEFAULT_LAYOUT, DEFAULT_PAD_AFTER, DEFAULT_QUALIFIERS, DEFAULT_RECORDING_STATUSES, DEFAULT_SPEAKER_PATTERN, DEFAULT_WRITING_STATUSES, type DocLine, type DocumentationClass, ESTIMATE_SYLLABLES_PER_SECOND_MAX, ESTIMATE_SYLLABLES_PER_SECOND_MIN, EXTENSIONS_DIR, EXTENSION_SCHEMA, EXTENSION_SHARD, type EditRecord, type Effect, type EngineSave, type EstimatingConfig, type Expression, type ExtensionFieldDecl, type ExtensionShard, FLOW_SCHEMA, type FlowCursor, type FlowFile, type FlowNode, type FlowSnapshot, type FlowState, type FlowValues, type GameData, type GameDataField, type GameDataFieldType, type GameDataFields, type GameDataNodeKind, type GameEventBeat, type GrammaticalGender, type Group, HANDOFF_SCHEMA, type HandoffFile, type HandoffImport, type HandoffLine, type HandoffRow, type HostScopeDecl, type HostScopeRegistry, type HostScopeSpec, type Jump, type JumpTarget, LINE_DURATION_MAX, LINE_DURATION_MIN, type LineBeat, type LocaleFile, MANIFEST_EXTENSION, type NodeExtensions, PAD_AFTER_MAX, PAD_AFTER_MIN, PROJECT_EXTENSION_STEM, PROJECT_LOCALE_SCENE, PROJECT_SCHEMA, type ProjectDictionary, type ProjectExtension, type ProjectFile, type ProjectLayout, type PromptBeat, type PropertyDecl, type PropertyType, RERECORD_STATUS, RERECORD_STATUS_DECL, type RecordingFolder, type RecordingStatusDecl, SAVE_SCHEMA, SAVE_VERSION, SPEAKER_PATTERN_KEY, SPEECH_DIGIT_WEIGHT, SPEECH_KANJI_WEIGHT, SPEECH_PAUSE_LONG_WEIGHT, SPEECH_PAUSE_SHORT_WEIGHT, STRINGS_SCHEMA, SUBTITLE_READING_MIN, type SaveEnvelope, type SaveGame, type SaveGameV3, type SavedChoice, type SavedChoiceOption, type SavedChoicePrompt, type ScalarValue, type Scene, type SceneFolder, type SceneFolderLayout, type SceneNavRow, type Selector, type SelectorExhaust, type SelectorOrder, type SelectorSnapshot, type SequenceOptions, type Snippet, type SpeakerQualifier, type SpeechUnit, type SpeechUnitKind, type StackFrame, type Suggestion, type SuggestionSource, type TextBeat, UNRESOLVED_KEY, type VcsKind, type WritingStatusDecl, castStringKey, countSyllables, deriveRecordingFolders, effectiveGameId, estimateLineDuration, formatSpeakerLabel, isContentlessBeat, isDialogueScene, projectLayout, projectQualifiers, qualifierStringKey, resolveSceneRef, sceneAddressIndex, sceneFolderLayout, sceneFolderPath, speakerLabelKey, speechUnits, textIsAction, usedQualifiers, usedSpeakerPairs, walkNodes };
|