147 Commits

Author SHA1 Message Date
Georg 8e87f935b8 Fix page label and restore nav code after bad clone-removal revert
The previous commit's clone removal corrupted the flip (shared live canvas overwritten mid-
animation -> flicker); reverting it fixed the flip but also discarded code that had ridden into
that commit and broke the page label. Recovering:

- Page label: the right-page pageNumber lookup returned null (meta not populated for the queried
  index) so every spread read 0. Now derive the printed number from the index (frontmatter
  pages 0-2 are unnumbered, so right-page index N prints as N-2), preferring the paginated
  pageNumber when present. Title still reads 0.
- Restored the manual-navigation-busy guard and the written-content navigation cap (no flipping
  forward into blank leaves before content exists; title stays on its own spread).

The flip flicker fix is the clone restoration in the prior revert; this restores the label and
navigation behavior on top of it. Suite 182. Flip-flicker and per-paragraph stutter still need
verification on a real (non-throttled) foreground tab.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 07:45:29 +02:00
Georg 7f60ce0d63 Revert "Remove per-draw canvas clones; title nav cap + right-page-number labels"
This reverts commit 0f66dae4eb.
2026-06-20 07:37:12 +02:00
Georg 0f66dae4eb Remove per-draw canvas clones; title nav cap + right-page-number labels
Two changes:

Eliminate cloning in the publish path. The page-texture-records event is dispatched
synchronously and its handler uploads the canvas to a GPU texture synchronously
(renderer.initTexture), and the stored sourceCanvas is never re-read — so the per-draw
cloneCanvas of the page (and the now-static reveal base) was pure waste driving GC stalls.
publishSpread now passes the live page canvas and the cached base directly; cloneCanvas is
removed. Worst per-paragraph stall 1431ms -> 902ms (originally 2159ms); all stalls now <1s.

Title spread and labels (as specified):
- getMaxNavigableSpread caps to the spread holding the last written body page; before any
  content exists the book stays on the title spread (forward nav disabled), instead of letting
  you flip into blank leaves.
- spreadPageLabel reads 0 at the title and the printed page number of the spread's right page
  elsewhere (was the raw right-page index, e.g. "3" before a game).

Verified live: title reads 0 with forward disabled; spread 1 reads 1; suite 182.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 07:33:21 +02:00
Georg c7364b0497 Cut per-paragraph GC stalls: reuse static paper base, cap lookahead to 1
Profiling the per-paragraph playback stutter showed the JS heap sawtoothing (37<->71MB) with
0.4-2.2s long tasks once per block — GC pauses from large (24-48MB) per-block canvas/ImageBitmap
allocations, not pagination (buildPages was ~29ms). These pauses freeze the flip/reveal
animation, which is also why the title flip looked un-animated.

- The reveal "base" layer is the plain paper background, identical for every page of a side.
  The worker now sends its bitmap once per side+size; the renderer caches the canvas and reuses
  it for all reveals, removing a large per-block bitmap+canvas allocation.
- WEBGL_BOOK_PREFETCH_LOOKAHEAD 2 -> 1 so only the next block's page render is prepared, instead
  of letting multiple large rasterizations overlap.

Verified live: per-paragraph long tasks roughly halved (10 -> 5 over the same window) and worst
case 2159ms -> 1431ms. Residual ~1.4s stall remains from the per-block page bitmap + prepared-
page snapshot clone + texture upload; further reduction needs reworking those to reuse buffers.
Suite 181.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 07:16:05 +02:00
Georg 91b5999cd2 Front-load worker fonts so a cold page render isn't cut short by the draw timeout
After clearing the page-texture cache, the worker's first drawSpread had to load the EB
Garamond faces AND rasterize inside a single 4s draw-timeout budget. On a cold load that could
exceed 4s, so the timeout fired, the draw resolved to null (no title painted), the loader then
completed over a black scene, and the title only appeared on a later render ("the image
returned outside the loader's progress indicators").

The renderer now awaits the worker's fonts-ready signal before its first timed draw (with a
15s safety cap so it can't hang), so font loading happens during the loader as its own step
rather than inside a draw's timeout window. Draw timeout raised 4s -> 6s for cold-render
headroom. Verified live: title page renders within the loader, no texture-worker-timeout
problems. Suite 178.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 07:00:22 +02:00
Georg 705d1ea6bf Fix new-game title flip + cap lookahead prepare burst
Builds on the worker migration with prepare-burst pacing and a title-flip fix:

- New game from mid-game left the book on the previous game's spread, so the first block's
  source and target spread matched and the title->content page turn was skipped. story:client-reset
  now returns the book to the title spread (spread 0) so the first block flips 0->1 and animates.
  Verified: requiresSpreadTransition src=0 tgt=1, page-flip-started/near-end fire.

- The lookahead burst-prepared many blocks at once, spiking allocation/GC into multi-second
  main-thread stalls. WebGL book prepares are now serialized through a chain and capped to a
  small lookahead window (TTS audio prefetch still spans the full window); future lookahead is
  also deferred until the current sentence has entered the display pipeline, keeping it off the
  first flip/reveal critical path. Worst game-start stall ~6s -> ~3.4s.

- Page flips now drive the scene through the sceneControl prewarm/startPreparedPageFlip API
  (awaited) instead of an event, and the scene awaits the async initial spread draw.

Suite 177. Remaining: a per-block prepare stall (~1.6-3.4s for large blocks at game start)
that profiling has not yet attributed to a single function (likely GC from prepare-path
allocation) — needs a DevTools performance capture for exact attribution.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 00:59:01 +02:00
Georg 004c077181 Don't recompute AO/shadow/reflection on page-texture content changes
handlePageTextureRecords() called markStaticSceneBuffersDirty() on every page-texture update,
forcing a full SSAO + shadow + reflection recompute (23-47ms frames) on every block during
playback — even though a page-text change moves no geometry. AO and shadows depend only on
geometry; the soft tabletop reflection picks up the new page on its throttled cadence. Removed
the forced dirty so only real geometry changes (flips, camera, rebuild, resize) recompute the
static buffers. Playback median ~60->63fps; the per-block forced heavy frames are gone (the
remaining periodic ~23ms frames are the normal 8Hz throttled refresh).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 19:38:13 +02:00
Georg b0175b7cdc Harden worker page rendering: error/timeout recovery and awaited flip prewarm
Two robustness gaps from the worker migration, both raised in review:

- The raster worker had no failure recovery: a thrown createImageBitmap/font error or a
  dropped message would leave the draw promise pending forever, stalling the serialized draw
  chain and hanging prepare/playback. Added worker.onerror and a per-job timeout; both settle
  the in-flight draw to a logged miss (texture-worker-error / -timeout) so the pipeline
  degrades to last-good per the spec instead of hanging. A single settleRasterization path
  clears the timer and resolves.
- prepareSpreadTextureRecordsForFlip() called drawSpread() without awaiting it. That was safe
  when drawSpread was synchronous, but now that it is async (worker) the flip could race ahead
  of the worker draw and miss the resident texture. prewarmFlipTextures now awaits both spread
  draws before the resident-texture lookup.

Suite 168 (added assertions for worker error/timeout recovery and the awaited prewarm).
Normal draw path is behaviorally unchanged from the verified worker commit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 19:29:20 +02:00
Georg 0e4d9e89d7 Move page rasterization to an OffscreenCanvas worker
Page text drawing (the bulk of drawSpread cost: layout, fonts, fillText across ~25 lines
x 2 pages at 3072px) ran synchronously on the main thread during prepare/lookahead, tanking
FPS at load and at flips/word boundaries.

New public/js/book-texture-worker.js owns rasterization off-thread: it loads the EB Garamond
faces via FontFace, draws base + title + lines + page number into an OffscreenCanvas, and
returns a full-page ImageBitmap plus a background-only base ImageBitmap (for the reveal mask)
per side. The main thread blits those onto the existing page canvases with one drawImage, so
the texture/reveal/scene pipeline downstream is unchanged. The worker also owns image loading
(fetch + createImageBitmap) and a DOM-free inline-tag parser (no document in a worker); the
renderer marshals the DOM-sourced title data in.

drawSpread is now async and serialized through a promise chain so the shared render state
(currentSpread, revealPublishBlockIds, spread override, reveal base) stays consistent across
the worker round trip even with concurrent lookahead prepares; the reveal context is passed
per draw rather than left on the instance. prepareRevealBlock / prepareContinuationRevealPlan /
preloadAdditionalRevealSpreads and their timeline callers await accordingly. The old
main-thread drawing methods are deleted (single implementation now lives in the worker).

Verified live: pages render correctly via the worker (text + drop caps crisp), worker fonts
load (probe returns fonts-ready + drawn), idle ~66fps, playback median ~60fps. Remaining
non-rasterization main-thread costs (procedural texture generation in the loader; pagination
text layout; per-frame reflection/shadow on content change) are separate follow-ups. Suite 166.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 16:09:34 +02:00
Georg 97f0b913be Cursor reflects game state over the 3D scene again
Two regressions made the cursor stop communicating game state:

- The canvas had a hardcoded `cursor: grab`, overriding the document-level process-state
  cursor everywhere over the 3D scene (always a hand). Removed it so the canvas inherits the
  state cursor; grab is now shown only transiently while right-drag-rotating the camera.

- normalizeProcessState pinned ready/waiting-generating to the playing (feather) cursor
  whenever playbackCoordinator.isPlaying was set, which lingered at choice prompts — so an
  open choice showed the feather instead of the input cursor. Now, when an input prompt is
  open AND no sentence is actively playing (timeline's webglBookPlaybackActive), the playback
  overlay is stripped (playing-ready->ready, playing-generating->waiting-generating) and the
  input/server cursor shows. Opening an input mode also refreshes the cursor immediately.

Verified live over the canvas: feather while a sentence plays, input arrow at a choice/idle,
and they switch correctly with playback state (no stuck feather, no constant grab).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 10:00:49 +02:00
Georg 0e3e2abdb6 Front-load post-processing compile into the loader
primeSceneForLoader() compiled scene materials and rendered the shadow/reflection passes
once, but never ran the full composer pipeline — so the SSAO and output passes compiled
their programs and allocated their render targets on the first live frame after the loader
faded, tanking FPS for ~1-2s before it climbed to full.

Now the loader runs composer.render() twice during prime, and precompiles the flip page
materials (created lazily on first flip, so previously missed by renderer.compile) via a
throwaway probe mesh. The heavy first-frame work is paid behind the loader overlay instead.

Verified live: loader timings show composerWarmup taking ~1499ms during load (exactly the
cost that used to hit the first frame); after fade-out there are no over-budget tank frames
in the slow-frame log and idle settles at ~72fps. Static suite passes (165).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 09:45:57 +02:00
Georg b180637ea7 Hold 60fps: throttle shadow/reflection passes when book geometry is static
The table reflection (full scene re-render) and the book shadow maps each cost ~11ms/frame
and were refreshing at 30Hz even when nothing moved, so every idle/reveal frame paid for one
heavy pass on top of the ~12ms scene render — ~45-52fps.

These passes only need full-rate updates while the book geometry is actually moving (a page
flip). At idle, or during a text reveal where only the page texture mask animates, they now
refresh at 8Hz (candle flicker is the only thing changing them then, captured imperceptibly).
Most non-flip frames are then just the scene render.

pixelRatio is deliberately left at 2x: the book is tilted, so page glyphs are minified along
the tilt and the supersampling is the scene's antialiasing (the composer MSAA is disabled in
app-integration mode). Reducing it blurs text and exposes edge aliasing, so 60fps is bought
from the geometry-independent passes instead. Expressed pixelRatio via devicePixelRatio so it
stays native on HiDPI.

Verified live at WQHD/2x (screenshot-checked crisp text + clean edges): idle ~64fps median
(was 52), reveal ~66fps median (was ~33). Remaining single-digit dips are main-thread page
rasterization during background prepare — addressed by the worker migration.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 09:39:29 +02:00
Georg 1e8defbb55 Spanning playback: one background-prepared path, no fallbacks
For a block that overflows onto the next spread, the plan is now prepared spanning-aware
during the background lookahead — the start spread's reveal timing is derived across both
preview spreads, and the continuation spread's plan is prepared and cached at the same time.

playback then follows a single path:
- activate reuses the prepared start plan (removed the synchronous forceRebuild rebuild).
- revealContinuationSpread reuses the prepared continuation plan (removed the redraw
  fallback); a missing plan is surfaced as a problem, not silently redrawn.

This removes the parallel/immediate prepare distinction and the two fallbacks, leaving one
intended path, and moves the spanning draw work off the critical path.

Verified live on a real spanning block: right line reveals at its area share (~3.3s), the
flip fires, and the continuation appears ~0.3s after the flip (was ~2.7s) and animates
progressively across the next spread over the full TTS — no pop-in, no fast-forward, no
timeline-reveal-continuation-missing. Static suite passes (165).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 09:24:13 +02:00
Georg 28d5e51c92 Reuse spanning-aware prepared plan at activate (kill pre-playback pause)
A spanning block stalled ~2.1s before it began playing: activate ran prepareRevealBlock
with forceRebuild, synchronously redrawing the start spread (and preloading the
continuation spread) on the main thread, because the lookahead plan had been built with
right-only timing before pagination committed the overflow.

Build the start-spread plan spanning-aware during lookahead instead: when the preview
layout shows the block overflows, derive its timing across both preview spreads (via the
revealSpreadSourceOverride) and cache it. activate then reuses that plan — the same fast
cached-plan path non-spanning blocks already use — with no synchronous redraw. forceRebuild
is kept only as a fallback when a block spans but was not prepared spanning-aware (e.g. an
immediate prepare with no preview layout), and an evicted plan still rebuilds correctly
because pagination is committed by then.

Verified live: the spanning block's pre-playback gap dropped from ~2088ms to 139ms (equal
to non-spanning blocks), while the right line still reveals over its area share (~3.3s),
the continuation still animates from the start, and there are no fast-forwards or problems.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 00:10:25 +02:00
Georg 47af10d60c Prepare spanning-block continuation spread in background (kill post-flip redraw)
For a paragraph that overflows onto the next spread, the continuation page was redrawn
synchronously after the flip (drawSpread on the main thread), so the next page stayed
blank for ~2.7s and then the carried-over lines popped in already ~24% revealed instead
of animating from the start.

Move that work off the critical path: during lookahead, prepare and cache the
continuation spread's reveal plan using the not-yet-committed preview spreads (so per-line
timing is computed across both spreads), then reuse it after the flip instead of redrawing.

- pagination: expose the preview spread layout on the returned preview spread so the owner
  can detect the continuation spread (race-free; each call owns its preparedSpreads).
- renderer: revealSpreadSourceOverride lets region collection use preview spreads during
  lookahead; prepareContinuationRevealPlan draws+caches the continuation plan (publishEvent
  off); takeContinuationRevealPlan reuses it, re-stamped as an activate-phase publish.
- timeline: prepare the continuation plan during background (non-immediate) prepares;
  revealContinuationSpread reuses it, falling back to the redraw when none was prepared.

Verified live on a spanning block: continuation now appears ~0.25s after the flip (was
~2.7s) at ve~3471 = the right line's duration, i.e. it animates from the start (no pop-in),
runs to ~full over the TTS, no fast-forward, no continuation-missing problems.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 00:04:21 +02:00
Georg e72594b3ff Revert per-line reveal timing to area-weighting
The previous commit changed per-line reveal-duration distribution from ink-area to
word-count. That dropped a deliberate precision decision (area gives sub-line
granularity) and, verified live on a spanning paragraph, it was what made the
continuation page fail to animate. Restore area-weighting for the per-line split.

The word-share scaling of the *total* duration for partial (spanning) blocks and the
timeline-module timing snapshot/restore are kept — they only preserve existing
word-timings, they do not change the area-based per-line distribution.

Verified: on a real spanning block the right line reveals over its area share (~3.3s),
the page flips, and the continuation animates progressively across the next spread
over the full TTS (no fast-forward, no reveal-all-at-once).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 23:45:26 +02:00
Georg dc2afcf831 Fix spanning-paragraph reveal pacing (right page no longer consumes full TTS)
A paragraph that overflows the right page onto the next spread revealed its single
right-page line over the entire TTS, then timed out (timeline-reveal-commit-timeout)
and only flipped after the whole narration. Two root causes:

- At activate the reused lookahead segment played a sentence instance whose animation
  word-timings were lost (wordTimings=[], totalDuration=0), so reveal timing fell back
  to an area estimate spanning the full TTS. Snapshot the timings at prepare and restore
  them at activate.
- Reveal duration was distributed by ink area, but just-paginated continuation lines
  have ~0 area, so the one right-page line received the whole duration. Distribute by
  word count (reliable) with area as fallback.

Now the right page reveals only its word share (~2.7s for a 6/55-word line), commits,
and flips while TTS continues; the continuation animates on the next spread. Also
rewrote the right-reveal wait to a single timer + commit/fast-forward listeners with
cleanup, removing the stray timeline-reveal-commit-timeout.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 17:13:39 +02:00
Georg 6bd1f45362 Reset per-game reveal state on new game so reveal animates over cached content
Starting a new game reuses block ids (1,2,3...). The reveal clock's per-block
start times (activeRevealBlockStarts in the lab) and the renderer's animation/
revealed sets are keyed by block id and were never cleared on a client reset, so
a new game over already-cached content inherited the previous run's start times.
beginPageReveal then computed a huge elapsed and the shader treated the reveal as
already complete — showing everything at once instead of animating.

resetClientPlaybackAndDisplay (run on new game and restore) now emits
story:client-reset; the lab clears activeRevealBlockStarts/pending reveal state,
the texture renderer clears active animations and revealed-block ids, and the
timeline invalidates prepared segments. So each game starts with a clean reveal
clock.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 16:40:31 +02:00
Georg a845108c43 Make WebGL book navigation spread-based and clear stale flip reveal mask
- Navigation now operates on spread indices, not the non-contiguous page-position
  scheme that mapped a forward step onto the same spread (so forward stalled and
  triggered a no-op multi-flip). Forward/back move one spread; start/end and the
  slider use spread indices. The page readout shows the odd page of the visible
  pair (2*spread+1) or 0 at the title spread.
- Flipping forward could show the source page with its last word still masked: a
  stale reveal mask left on the flip surface by a previous playback flip was not
  cleared when the (finished) source page had no active reveal. Reset the flip
  surface reveal shader in that case so the full page shows during the turn.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 16:27:18 +02:00
Georg ab194062bb Fix WebGL reveal pacing on spanning pages and page-reveal-on-flip
- Reveal timing is now word-proportional per page: when a block's reveal only
  covers part of the block (the continuation spread is not paginated at reveal
  time), the page reveals only its share of the TTS, offset by the words before
  it. The right page no longer absorbs the whole TTS before flipping; it flips at
  normal pace and the continuation resumes on the next spread while TTS plays. No
  effect when the regions already cover the whole block (unified plan / one page).
- Page flip start now shows the target spread's same-side page beneath the lifting
  page (revealed as it turns away) instead of a blank that pops in after the flip.
  Deferred (pending-reveal) sides stay blank so the masked reveal still lands via
  activate.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 20:01:41 +02:00
Georg 8bb18fa201 Rework WebGL book playback to single ownership and fix flip/reveal pipeline
Establish book-playback-timeline as the sole playback owner driving the
scene through formal webgl-book:* events (not the BookLabDebug surface),
with a single reveal clock in the scene render loop and webgl-page-cache as
the only texture cache. Remove the legacy dual playback path and the
ownsPageFlipCommit gating.

Fixes:
- Flip page detached/folded at the spine: restore the raw page-cap line for
  flip geometry (matches the prototype/pre-regression), removing
  normalizeFlipLineToVisiblePage which moved the pivot off the spine arc.
- Flip textures: distance-based UVs (no horizontal compression),
  direction-aware face material (source on the camera-facing side), source
  meta derived from the visible spread (manual flips), prewarm shape fix.
- Reveal: flash removed on the static page and the flip back surface;
  spanning blocks rebuild the reveal plan at activate and continue the
  reveal on the next spread after the fill flip.
- Cache staleness is contentVersion-primary; nav clamps to spreadCount.

Docs updated to describe the intended single-owner architecture. Regression
checks updated to match.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 15:30:12 +02:00
Georg c19ebe3089 Stabilize WebGL title and timeline texture flow 2026-06-17 08:31:46 +02:00
Georg ef358c5cfd Stabilize WebGL flip reveal handoff 2026-06-10 15:10:57 +02:00
Georg 97eab216b7 Fix WebGL reveal timing and flip texture readiness 2026-06-10 13:54:54 +02:00
Georg e3d66686b9 Fix WebGL page readiness gating 2026-06-10 10:46:01 +02:00
Georg 623b42caf9 Fix WebGL timeline startup ordering 2026-06-10 10:04:06 +02:00
Georg ce8147b5b1 Enforce explicit WebGL book playback timeline 2026-06-10 09:35:00 +02:00
Georg 5a84923884 Restore WebGL reveal timing diagnostics 2026-06-10 08:09:02 +02:00
Georg 10bf23b10b Add timeline owner for WebGL book playback 2026-06-10 02:00:57 +02:00
Georg b41340151d Checkpoint WebGL book playback refactor state 2026-06-10 01:07:22 +02:00
Georg 171cafeb65 Stabilize WebGL book pagination restore 2026-06-09 16:42:12 +02:00
Georg fe51410a3b Fix WebGL reveal timing and flip prewarm 2026-06-09 10:05:23 +02:00
Georg d665a0f237 Fix WebGL line reveal renderer 2026-06-09 09:02:54 +02:00
Georg 419691000c Fix WebGL page cache and flip sequencing 2026-06-08 23:08:13 +02:00
Georg a73dc5725f Add WebGL page cache and runtime checks 2026-06-08 14:39:42 +02:00
Georg 119cefd4bd Fix WebGL page number texture crash 2026-06-08 10:34:20 +02:00
Georg efd1e6cfff Implement WebGL page reserve navigation 2026-06-08 10:25:54 +02:00
Georg 3e28d7db23 Checkpoint before WebGL page reserve sprint 2026-06-08 09:42:59 +02:00
Georg 86b6fa0419 Implement WebGL book spread flip groundwork 2026-06-08 09:13:37 +02:00
Georg c86a304364 Checkpoint WebGL book reveal optimization 2026-06-08 08:19:20 +02:00
Georg 7abd3387f3 Correct WebGL dropcap texture layout 2026-06-07 17:59:01 +02:00
Georg da37608197 Reduce WebGL page texture runtime stalls 2026-06-07 17:37:31 +02:00
Georg 53c24e4fae Stabilize WebGL reveal timing 2026-06-07 16:42:09 +02:00
Georg 9695d48368 Checkpoint WebGL font gating 2026-06-07 14:49:05 +02:00
Georg 74ddd1de1c Gate WebGL book texture fonts 2026-06-07 14:35:00 +02:00
Georg 9434950826 Queue WebGL book reveal masks 2026-06-07 13:52:07 +02:00
Georg 7fc083fb58 Add shader page reveal checkpoint 2026-06-07 13:10:17 +02:00
Georg 7725ce9c73 Soften WebGL paper rendering 2026-06-07 12:22:26 +02:00
Georg de81a7c5c5 Stage WebGL scene loading 2026-06-07 12:08:13 +02:00
Georg 1b593c8c7b Restore WebGL book quality settings 2026-06-07 11:13:05 +02:00
Georg 777e39a650 Correct WebGL book page projection 2026-06-07 09:56:56 +02:00
Georg 081cfa9902 Optimize WebGL book texture reveal 2026-06-06 16:44:15 +02:00
Georg 1b8c8f8bce Add texture drop cap pagination 2026-06-06 15:39:53 +02:00
Georg 431e305df9 Add WebGL FPS cap and texture word reveal 2026-06-06 15:37:44 +02:00
Georg bc736513d4 Restore WebGL control overlay and page grid 2026-06-06 15:17:50 +02:00
Georg 9836c68ffa Add texture-space book pagination foundation 2026-06-06 14:58:25 +02:00
Georg 62215b280f Start texture-space book renderer 2026-06-06 14:51:07 +02:00
Georg 326f812b22 Begin 3D canvas book renderer migration 2026-06-06 14:42:49 +02:00
Georg b734d83227 Checkpoint WebGL book renderer work 2026-06-06 14:35:37 +02:00
Georg 83ca095d54 Document WebGL page texture pipeline 2026-06-06 11:24:50 +02:00
Georg 0cb1e7c6f5 Fine tune WebGL book indirect lighting 2026-06-06 10:55:49 +02:00
Georg 965be72ea4 Tune WebGL book bounce lighting 2026-06-06 10:41:00 +02:00
Georg 0956d2ef1f Add WebGL book headbands and bounce lighting 2026-06-06 10:29:18 +02:00
Georg 925caa57bb Refine WebGL paper and spine materials 2026-06-06 08:53:29 +02:00
Georg 67c0c4e7e3 Add WebGL cloth and paper materials 2026-06-06 08:03:45 +02:00
Georg 13f8b60e20 Improve WebGL leather material 2026-06-06 03:00:07 +02:00
Georg f634500121 Round WebGL book cover edges 2026-06-06 02:48:57 +02:00
Georg 874d360d22 Fix WebGL right page content layout 2026-06-06 01:28:42 +02:00
Georg 32d2a6a15a Fix WebGL book SSAO occlusion 2026-06-06 01:07:13 +02:00
Georg 83b30000da Checkpoint WebGL page and mirror debug fixes 2026-06-06 00:54:42 +02:00
Georg ca38f9ce92 Checkpoint WebGL procedural book lab 2026-06-05 22:51:30 +02:00
Georg 80d29ed2d2 Set book page bounds and physical cover width 2026-06-05 17:19:40 +02:00
Georg f00072282e Checkpoint arclength page flip width 2026-06-05 16:55:42 +02:00
Georg be1056b280 Allow thin-book spine to shrink 2026-06-05 16:42:13 +02:00
Georg 738e683c7b Checkpoint fore-edge direction fix 2026-06-05 16:32:16 +02:00
Georg ee14916661 Checkpoint deterministic page support 2026-06-05 16:22:12 +02:00
Georg e88ab8c48b Checkpoint variable page segment lengths 2026-06-05 15:39:18 +02:00
Georg fd608ba217 Checkpoint cover segment legality 2026-06-05 15:15:47 +02:00
Georg ac382a6cac Checkpoint shared cover support profile 2026-06-05 14:52:00 +02:00
Georg a92822bc44 Checkpoint book shape task 2 2026-06-05 14:37:22 +02:00
Georg 139086917e Checkpoint cover frame overhang 2026-06-05 14:09:15 +02:00
Georg 9f659f8f63 Checkpoint restored book coordinate frame 2026-06-05 14:04:17 +02:00
Georg ecc4413014 Checkpoint before book geometry fixes 2026-06-05 13:13:00 +02:00
Georg 65dbbdd093 Checkpoint hinge-relative book geometry 2026-06-05 12:39:23 +02:00
Georg fc38dca7cf Checkpoint max page cover geometry 2026-06-05 12:06:38 +02:00
Georg 467842ba0b Checkpoint flip page dimensions 2026-06-05 11:48:01 +02:00
Georg b5c2f9fa42 Checkpoint packed spine spacing 2026-06-05 11:32:32 +02:00
Georg ee641d2b91 Texture procedural page stack lines 2026-06-05 04:08:11 +02:00
Georg ae84eb8976 Add burst page flip controls 2026-06-05 03:41:26 +02:00
Georg ae8068ad8a Checkpoint page flip surface 2026-06-05 03:32:50 +02:00
Georg 44fb461eae Checkpoint open-bottom page stack 2026-06-05 02:19:00 +02:00
Georg 444312351a Checkpoint endpoint page bodies 2026-06-05 02:05:35 +02:00
Georg 248973fc77 Checkpoint page support solver 2026-06-05 01:53:11 +02:00
Georg 5283f0007e Checkpoint optimized book shape spline 2026-06-05 01:03:27 +02:00
Georg 5a5464e0b4 Checkpoint accepted book shape solver state 2026-06-05 00:33:41 +02:00
Georg a95ac9db50 Checkpoint reconstructed book shape solver 2026-06-05 00:31:48 +02:00
Georg 4adf85b4d2 Checkpoint curve-origin book shape lab 2026-06-04 23:39:44 +02:00
Georg 073be20dca Checkpoint clean procedural book profile 2026-06-04 23:03:33 +02:00
Georg 552bf14626 Checkpoint procedural book shape lab 2026-06-04 22:13:06 +02:00
Georg e5b00f7472 Stabilize WebGL lighting lab 2026-06-04 20:43:00 +02:00
Georg 444acb6229 Refine WebGL table surface contamination 2026-06-04 13:37:41 +02:00
Georg e1396d44bb Improve planar reflection alignment 2026-06-04 12:11:18 +02:00
Georg 90308e4b1b Preserve reflection render target aspect 2026-06-04 11:54:59 +02:00
Georg 5127bbc743 Improve WebGL reflection and texture quality 2026-06-04 11:50:25 +02:00
Georg bdec4590d2 Add table shader diagnostics and candle shadow model 2026-06-04 11:40:55 +02:00
Georg 199462442c Add WebGL book scene checkpoint 2026-06-04 11:10:48 +02:00
Georg bccefd2a68 Checkpoint current interactive fiction changes 2026-06-03 12:59:43 +02:00
Georg 61127c0a92 Refine character generator name text 2026-05-25 18:56:30 +02:00
Georg 29baac7a6d Simplify character generator weave flow 2026-05-25 16:31:11 +02:00
Georg 40ef48b279 Checkpoint before character generator cleanup 2026-05-25 16:21:44 +02:00
Georg eef90f3471 Fix contact transitions and dining car access 2026-05-24 18:14:16 +02:00
Georg 510901f5bf Checkpoint ink architecture updates 2026-05-24 16:00:22 +02:00
Georg 01c8b1aff6 Refine Eibenreith Ink bucket architecture 2026-05-24 11:21:57 +02:00
Georg d42540f29d Checkpoint Eibenreith ink architecture 2026-05-24 09:09:41 +02:00
Georg beac5a2be3 Fix stale restore after game restart 2026-05-20 22:27:36 +02:00
Georg 8258ea2321 Update TTS providers and story markup 2026-05-20 22:13:31 +02:00
Georg b911c40d89 Stabilize TTS voice reload and reconnect logging 2026-05-19 17:08:48 +02:00
Georg df5933c194 Fix autosave resume choice restoration 2026-05-19 15:48:15 +02:00
Georg 9111dedaa2 Archive prototype outside main tree 2026-05-19 14:39:09 +02:00
Georg ebc8e1c7df Add Ink session recovery and Coolify Docker support 2026-05-19 13:14:46 +02:00
Georg dbcb8f4284 Consolidate engine docs and naming 2026-05-19 11:09:37 +02:00
Georg 121b174f2c Add glossary hover presentation 2026-05-19 07:34:52 +02:00
Georg 751ac5f62b Stabilize playback state and cursor feedback 2026-05-18 20:57:20 +02:00
Georg 6e908037fb Preload media assets and refine process cursors 2026-05-18 11:15:39 +02:00
Georg 4f6300042c Fix portrait image flow and drop-cap spacing 2026-05-18 03:08:23 +02:00
Georg d7bb175167 Checkpoint current UI and ink integration state 2026-05-18 02:46:02 +02:00
Georg 2c54498ee2 Document markup and improve choice tags 2026-05-17 15:52:41 +02:00
Georg c2fb27b6b8 Tighten detailed book page calibration 2026-05-16 22:19:12 +02:00
Georg e1a5d5809d Adapt book skin to detailed artwork 2026-05-16 22:06:56 +02:00
Georg f8911f6fc8 Keep live appends out of history reflow 2026-05-16 21:46:44 +02:00
Georg e368d252ad Refine line-based story scrolling 2026-05-16 21:40:36 +02:00
Georg b9ae7f71c5 Checkpoint line-grid renderer state 2026-05-16 15:57:03 +02:00
Georg fe33e4f0ab Checkpoint before line-grid scrolling refactor 2026-05-16 13:44:03 +02:00
Georg 42582352d6 Add storage-backed story history 2026-05-15 21:58:30 +02:00
Georg f2e786d5bc Add ink integration UI and media playback 2026-05-15 21:23:46 +02:00
Georg 44dc64f830 Add Ink integration notes 2026-05-15 08:11:35 +02:00
Georg 6faee20268 Add Zork engine integration work 2026-05-15 07:55:05 +02:00
Georg b8fe8535aa Fix story page scrolling and ellipsis spacing 2026-05-15 07:35:27 +02:00
Georg 74be77b267 Updated animations. 2026-05-14 23:19:06 +02:00
Georg 9a6bb009f2 Fixed Ducking. Refined UI. 2026-05-14 23:18:30 +02:00
Georg b5829ed773 Remove consolidated reference documentation 2026-05-14 21:18:54 +02:00
Georg 873049f7e6 Checkpoint current interactive fiction state 2026-05-14 21:17:43 +02:00
Georg c745efd1d2 Latest state before reworking with cluade 4.6. 2026-02-12 22:44:44 +00:00
Georg b1387f4833 Fixed kokoro loading process. 2025-04-07 06:51:45 +00:00
Georg 0842cbfefc Cleaned persistence manager, updated ui-options connectivity 2025-04-06 19:35:05 +00:00
Georg 0ab639fd25 Refactored modules and updated loader. 2025-04-06 18:35:04 +00:00
Georg fc693ae695 Fix Kokoro TTS integration issues: Remove API key requirement and ensure system-specific options display correctly 2025-04-05 22:06:22 +00:00
668 changed files with 1007141 additions and 15753 deletions
+8
View File
@@ -0,0 +1,8 @@
{
"permissions": {
"allow": [
"Bash(wc:*)",
"Bash(git -C /workspaces/ai.interactive.fiction log --oneline -15)"
]
}
}
+10
View File
@@ -0,0 +1,10 @@
node_modules
dist
.git
.env
.env.*
!.env.example
npm-debug.log*
coverage
.nyc_output
data/ink-src/eibenreith.old.ink
+2 -1
View File
@@ -1,6 +1,7 @@
# OpenRouter API Configuration
OPENROUTER_API_KEY=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
OPENROUTER_MODEL=anthropic/claude-3-opus-20240229
OPENROUTER_MODEL=openai/gpt-5.5
OPENROUTER_REASONING_EFFORT=none
# Application Configuration
PORT=3001
+4 -1
View File
@@ -1,10 +1,13 @@
# OpenRouter API Configuration
OPENROUTER_API_KEY=your_openrouter_api_key_here
OPENROUTER_MODEL=your_selected_model_here
OPENROUTER_MODEL=openai/gpt-5.5
# GPT-5 reasoning tokens can consume short completion budgets; keep narration calls direct by default.
OPENROUTER_REASONING_EFFORT=none
# Application Configuration
PORT=3000
NODE_ENV=development
# Game Configuration
DEFAULT_GAME_ENGINE=ink
DEFAULT_WORLD_FILE=./data/worlds/example_world.yml
+5
View File
@@ -2,3 +2,8 @@ node_modules
# windsurf rules
.windsurfrules
# local inspection / generated scratch artifacts
.tmp/
*.orig
*.bkp
+1
View File
@@ -0,0 +1 @@
22
+14
View File
@@ -0,0 +1,14 @@
# Codex Project Rules
These rules are mandatory for all AI/Codex work in this repository.
## Text Editing Safety
- No authored text changes through regex, scripted bulk rewrites, or search-and-replace. No exceptions.
- Use `apply_patch` for prose, Ink text, localization, documentation, and generated character text.
- Before large text work, create a git check-in.
- Edit text entry by entry. Inspect each edited entry before moving to the next. No generated shortcuts.
- In PowerShell, always force UTF-8 before reading or displaying text:
`$OutputEncoding = [System.Text.UTF8Encoding]::new(); [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new();`
- Ink and localization files must remain UTF-8 with real umlauts, `ß`, and typographic German quotation marks.
+29
View File
@@ -0,0 +1,29 @@
FROM node:22-bookworm-slim AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:22-bookworm-slim AS runtime
WORKDIR /app
ENV NODE_ENV=production
ENV DEFAULT_GAME_ENGINE=ink
ENV PORT=3000
COPY package*.json ./
RUN npm ci --omit=dev && npm cache clean --force
COPY --from=build /app/dist ./dist
COPY --from=build /app/public ./public
COPY --from=build /app/config ./config
COPY --from=build /app/data ./data
COPY --from=build /app/scripts ./scripts
EXPOSE 3000
CMD ["node", "dist/server-ink.js"]
+393
View File
@@ -0,0 +1,393 @@
# Markup Guidelines
This file documents author-facing Ink tag conventions. The active parser normalizes tags into structured `StoryTag` objects before they reach the UI.
## Eibenreith Ink Architecture
`WritingWithInk.md` is the official Ink language reference and must not be edited for project conventions. This file is the author-facing project guide.
All Ink source and UI localization files must be UTF-8 and use real German characters directly: `ä`, `ö`, `ü`, `Ä`, `Ö`, `Ü`, `ß`, `„…“`. Do not replace them with `ae`, `oe`, `ue`, `ss`, or ASCII quotation marks as an encoding workaround.
Mandatory editing rules for AI/Codex work: no authored text changes through regex, bulk replacement, or scripted rewrites. Text edits must use `apply_patch`. PowerShell commands must set UTF-8 output before reading or displaying text. Before large text work, create a git check-in. Edit and inspect entries one by one, sequentially, without generated shortcuts.
Eibenreith uses a bucket architecture. This is mandatory for authored content, not a suggestion. The active choice surface is collected in this priority order:
1. Moment bucket
2. Room entry or room look
3. Room exits
4. Episode bucket
5. Game bucket
Every room is declared through `enter_room(location, entry, look, exits, bucket)`. The room entry knot contains the one-time first description. The look knot contains the repeat look action. The exits knot contains traversal choices. The bucket contains complete conditioned weaves for local interactions.
```ink
=== train_washroom ===
-> enter_room(loc_train_washroom, -> train_washroom_entry, -> train_washroom_look, -> train_washroom_exits, -> train_washroom_bucket) -> TURN
```
Bucket content must be written as complete conditioned weaves directly inside the bucket. Do not split ordinary bucket choices into one-line `_choices` knots or pass-through knots. A separate knot is allowed only when the content is genuinely reused or when the exception is explicitly justified, such as the identity papers tunnel in `character_generator.ink`.
The canonical atom header format is:
```ink
* {condition_one}
{condition_two}
[__Verb Charakter__: "..."]
Text and nested weave content.
-> TURN
```
Each precondition gets its own header line directly after the choice marker. The choice text gets its own header line after the preconditions. Do not put naked condition lines before the choice; they compile, but they do not gate the choice. Do not put visibility conditions inside the branch body.
Valid examples:
```ink
=== train_washroom_bucket ===
* {lacks(face_def)}
[AUTO: Spiegelbild im Waschraum] #auto
-> washroom_mirror_character_generator
* {lacks(washroom_toilet_used)}
[__Benutze__: Die Toilette. #key:t]
~ mark(washroom_toilet_used)
Du schiebst den Riegel vor und nimmst dir die Zeit, die eine Reise dem Körper selten höflich anbietet.
-> TURN
-> DONE
```
Use `-> TURN` at the end of a chosen atomic weave when play should continue at the current choice surface. Use `-> DONE` only to close a bucket/provider knot that merely offers choices. Do not call `-> provide_choices` in authored chapter files; it is internal helper implementation.
Choice text is written from Valerie's perspective before the action. It may describe intention, attention, posture, or immediate action. It must not reveal what the branch will discover after the choice.
Dialogue choices use a stricter form. If the choice represents a spoken line, the visible choice text must contain that line. If the addressee matters and is not obvious from the room or weave, put the addressee into the bold action phrase before the colon:
```ink
* [__Prüfe Viktor__: „Welche Zeile betrifft Sie, Herr Nowak?“]
```
Do not write dialogue choices as post-hoc summaries such as:
```ink
* [__Frage__: Viktor, weshalb er wirklich mitreist.]
```
Neutral UI verbs such as `Frage`, `Sage`, `Antworte`, and `Sprich` are too weak for ordinary dialogue. Prefer verbs that name Valerie's social move, such as `Prüfe`, `Wahre Form`, `Entwaffne`, `Benenne`, `Schone`, `Trotze`, `Reize`, or `Zügle dich`. Non-dialogue choices may omit a quoted line when they represent physical action, attention, traversal, or examination rather than speech.
Good:
```ink
* [__Versuche__: Die andere Übergangstür. #key:w]
```
Bad:
```ink
* [__Prüfe__: Die Tür zu den Wagen zweiter und dritter Klasse. #key:w]
```
Use Ink's built-in visit tracking for simple “this knot/choice/gather has been seen or chosen” facts. Do not create parallel flags such as `seen_train_compartment`. Use `LIST` state only for semantic progress, encounter chains, timetable state, locations, character-generation facts, tutorials, and other authored state that has meaning beyond a knot visit.
## Helper Conventions
Author-facing helper functions live in `data/ink-src/eibenreith/helpers.ink` and are documented in comments there. Important families:
- `route_*`: Valerie route counters such as `route_composure` and `route_sapphic`.
- `route_repeated(route_id, amount)`, `route_is_highest(route_id)`, `route_is_clear(route_id, margin)`, `route_beats(route_id, other_route_id, margin)`: route-pattern heuristics. Use `composure`, `detective`, `lover`, `sapphic`, `careless`, or `eccentric` as `RouteId` values.
- `time_*`, `day_*`, `slot_*`, `episode_*`: timetable and episode control.
- `meal_*`: arrival-day meal plan.
- `loc_*`, `enter_room`, `present`, `companion_*`: traversal, room setup, and companion presence.
- `first_meeting(character)`, `reunion(character)`, `parting(character)`: contact-manager transitions for the one choice surface after a character first appears, reappears, or stops being present.
- `alone`, `alone_with(character)`: privacy checks for dialogue that should only surface without witnesses or with exactly one companion.
- `state_*`: ordered high-watermark encounter/progress state.
- `mark`, `has`, `lacks`: exact checklist facts.
- `tutorial`: returns true once and marks the tutorial as shown.
- `claim_choice_gate_if(gate, available)`: transient choice-surface arbitration. Use only to allow at most one valid choice from a prioritized family, especially `#auto` groups.
- `timer_start(timer_id, turns)`, `timer_due(timer_id)`, `timer_due_if(timer_id, available)`, `timer_claim(timer_id)`: named turn timers for delayed events.
- `rel_*`: relationship counters and two-value relationship-axis queries.
Relationship counters use only the standard value pairs declared in `characters.ink`:
- `agreeable` / `adversarial`
- `open` / `closed`
- `bold` / `passive`
- `reliable` / `unreliable`
- `insightful` / `dull`
Do not add per-character custom relationship dimensions. If a concept does not fit the shared matrix, express it in prose or in a semantic encounter `LIST`.
Relationship values are impressions held by the named character about Valerie. `viktor_insightful` means Viktor experiences Valerie as insightful. It does not mean Viktor behaves insightfully.
## Tracking Domains
Keep the four tracking domains strictly separated:
- Route heuristics are for Valerie's general reputation, repeated social pattern, and ending-state coloration. Use route counters and `route_*` query helpers for these.
- The character matrix is for what a named character thinks about Valerie and how that character reacts to her presence and actions. `viktor_insightful` means Viktor reads Valerie as insightful.
- Callbacks are for one concrete choice taken or one concrete piece of content shown. Use Ink's named option/gather/knot tracking with labels such as `(asked_viktor_role)` and conditions such as `{train_compartment_bucket.asked_viktor_role}`. Do not create `cb_*` facts for ordinary callbacks.
- Encounter state trackers are for off-screen plotlines, knowledge chains, reached goals, NPC actions, relationship progress along a plotline, and other one-way progress. They must never track that one piece of content has merely played.
Use a named Ink callback when later content remembers one concrete earlier choice:
```ink
* (send_carriage_ahead_from_village) [__Verfüge__: Die Kutsche mit Gepäck und Nachricht vorausschicken.]
...
* {village_detour_exits.send_carriage_ahead_from_village}
[__Erinnere__: An die vorausgeschickte Kutsche.]
```
Use a separate semantic `LIST` with the `state_*` helpers whenever a tracker expresses a linear process. This also applies to small two-state processes such as "begun" and "completed"; if completion implies beginning, it is a progress tracker, not a pair of loose facts.
Use `state_reach(first_state)` when authoring the moment that begins the chain. Use `state_reach_if_started(later_state)` when an action can advance or complete a chain only if the player has already begun that line. The helper checks the chain automatically, so authors do not need to write noisy paired conditions such as `{state_reached(start)} ~ state_reach(done)`.
Use `state_started(state)` and `state_unstarted(state)` only when content must explicitly test the null/non-null state of a progress chain. Do not add a fake `none` or `unknown` item to every list just to represent the empty state.
Prefer multiple small parallel progress trackers over one large state chain when that better matches the encounter. Inkle-style knowledge bases work by advancing separate knowledge/progress lines independently, then querying their combination in content.
Use exact facts through `mark`, `has`, and `lacks` only for coherent groups of independent facts that can be true separately and do not imply order, such as tutorial display or mutually exclusive outcome facts.
Never put mutually exclusive alternatives into one `state_reach` list. For example, `public_mask_established` and `public_mask_strained` are exact facts, not ordered states; reaching one must not imply the other.
Use route and relationship helpers only as heuristics. They should color tone, summaries, repeated social readings, and available flavor, not replace callbacks to exact choices.
## Choice-Surface Gates
`claim_choice_gate_if(gate, available)` returns true only for the first valid condition that claims the given gate while the current choice surface is being built. It is reset automatically at the start of `provide_choices`.
Use it when several choices can be valid at the same time but the surface must offer only one of them. The main use case is prioritized `#auto` families:
```ink
+ {claim_choice_gate_if(return_auto, reunion(viktor) && state_reached(freshen_up_done))}
[AUTO: Viktors Rückkehr nach Frischmachen] #auto
...
-> TURN
+ {claim_choice_gate_if(return_auto, reunion(viktor) && state_reached(explore_train_done))}
[AUTO: Viktors Rückkehr nach Erkundung] #auto
...
-> TURN
```
The source order of the atoms is the priority order. Auto choices are not randomized by the UI; the first ready auto choice is selected like a normal Ink choice. The gate prevents lower-priority choices from surfacing on the same choice build. Use `claim_choice_gate_if(gate, available)` when availability is conditional; pass the whole availability expression as the second parameter so false candidates cannot consume the gate.
Do not use gates as story memory. World state belongs in Ink callbacks, `state_*` progress chains, or `mark/has/lacks` facts.
## Character Contact Manager
Character contact is managed centrally in `helpers.ink`. Authors should not add room-specific flags such as `viktor_back_in_compartment`, `met_viktor_here`, or `seen_viktor_leave`. `loc_move_to(...)` updates the player location, moves active companions, and refreshes contact state.
Use:
```ink
{present(viktor)}
{first_meeting(viktor)}
{reunion(viktor)}
{parting(viktor)}
{alone()}
{alone_with(viktor)}
```
`first_meeting`, `reunion`, and `parting` are transition checks. They are true only for the first choice surface after the transition happened. The next turn clears them centrally in `provide_choices`. Authors must not call `contact_clear_transitions()` or any other cleanup helper from content. This makes the transitions suitable for immediate one-shot auto reactions:
```ink
+ {claim_choice_gate_if(return_auto, reunion(viktor) && state_reached(freshen_up_done))}
[AUTO: Viktors Rückkehr nach Frischmachen] #auto
...
-> TURN
```
Companions are characters in the `companions` list. When Valerie traverses with `loc_move_to(...)`, companions automatically move to the new location before contact is updated. `companion_join(character)` and `companion_leave(character)` only change whether a character follows Valerie; they are not story-memory flags. Character starting positions and initial companion state belong in episode setup. If several characters are placed manually before play resumes, call `contact_sync()` once after setup to establish contact without firing a meeting or reunion reaction.
Episode setup may install a companion transition bucket through `enter_episode(value, slot, start_bucket, end_bucket, episode_bucket, companion_transition_bucket)`. `enter_room(...)` plays this bucket centrally after movement and before room content is installed. Use it for prose that describes how current companions traverse with Valerie, so individual exits do not need companion boilerplate. Such buckets should usually contain only conditioned prose:
```ink
=== train_companion_transition_bucket ===
{
- accompanied_by(viktor):
{
- traversal_between(loc_train_home_corridor, loc_train_clergy_corridor):
Viktor folgt dir über die schwankende Verbindung.
}
}
->->
```
Use `traversal_from(location)`, `traversal_to(location)`, or `traversal_between(origin, destination)` only inside companion transition buckets. Normal room, episode, and game buckets should gate on `loc(...)`, `present(...)`, `reunion(...)`, and semantic story state instead.
## Room Look Lifecycle
Room look content belongs in the room's look bucket passed to `enter_room(...)`. The Ink room engine exposes that bucket only after Valerie has left a room and re-entered it. The look choice then disappears after it is used and becomes available again on the next re-entry.
Authors do not add flags for this and do not call a cleanup helper. The shared room engine compares the current room-entry turn with Ink's visit tracking for the active look bucket, so any look bucket selected during the current visit is automatically hidden until the room is re-entered. Room look choices must keep using the `#key:l` convention:
```ink
=== train_compartment_look ===
+ [__Schaue__: Im Abteil umher. #key:l]
...
-> TURN
-> DONE
```
## Turn Timers
Use named timers for delayed events that should advance when any ordinary choice is taken, including unrelated dynamic bucket content. Timer IDs are values in the global `Timer` LIST.
```ink
~ timer_start(train_lunch_order, 3)
+ {timer_due_if(train_lunch_order, state_between(lunch_ordered, lunch_served))}
[AUTO: Der Kellner bringt die Bestellung] #auto
~ state_reach(lunch_served)
-> TURN
```
`timer_start(timer_id, turns)` first removes that timer name from all countdown, ready, and claimed buckets, then starts it again. Durations `1..10` count later player choices; the choice that starts the timer does not consume one of those turns.
When a timer expires, it stays in the ready bucket until claimed. `timer_due(timer_id)` returns true if the timer is ready and moves it to claimed; further checks in the same turn still return true. Claimed timers are cleared automatically on the next `TURN`. Use `timer_due_if(timer_id, available)` when additional story conditions must be true before the timer is claimed.
If chosen content makes the delayed event happen early, use `timer_claim(timer_id)` as part of that event, not as cleanup:
```ink
+ {state_between(lunch_ordered, lunch_served)}
[__Warte__: Auf die Bestellung.]
~ timer_claim(train_lunch_order)
~ state_reach(lunch_served)
-> TURN
```
## Implemented Tag Forms
Use bracket tags for titles, filenames, and longer text:
```ink
#chapter[Eibenreith]
#image[statue.png](square)
#music[Kaiserpunk Waltz.mp3](crossfade, loop, lead=8)
#sfx[church-bells.ogg](max=8, fade)
#score[You reached an ending.]
#achievement[First Steps]
#alert[Try examining the room.]
```
Use colon tags for short identifiers, categories, and choice keys:
```ink
#action:movement
#key:l
#sort:last
#gated:noble
```
Bare flags are accepted as tags with no value:
```ink
#optional
#auto
```
## Right-Page Glossary Notes
Glossary notes are story tags scoped to the paragraph/block they belong to. They affect only the right-page story rendering, never choice text or command history.
```ink
The conductor points toward Eibenreith.
#gloss[Eibenreith](A fictional alpine town in the Kaiserpunk setting.)
```
The bracket value is the visible term to find. The parenthesized value is the note shown on hover/focus. The renderer marks every matching instance of the term in the same right-page block. The tag is not displayed and is not sent to TTS. Avoid raw Ink control characters in the explanation; `|`, `{`, and `}` must be escaped in Ink as `\|`, `\{`, and `\}` if they are needed literally.
## TTS Reading Instructions
TTS instruction tags are story tags scoped to the paragraph/block they belong to. They are not rendered, and they are only sent to TTS providers that support per-request reading instructions. Currently this means OpenAI with `gpt-4o-mini-tts`.
```ink
„Ich habe nichts gesehen“, sagt Viktor.
#tts[Read softly, with controlled unease.]
```
The default form omits a provider and is the preferred authoring style. Providers that support instructions may consume it; providers that do not support instructions silently ignore it. Provider-specific instructions are only needed when two providers should receive different direction, or when an instruction must be hidden from all but one provider. They use the tag parameter position:
```ink
„Ich habe nichts gesehen“, sagt Viktor.
#tts[openai](Read softly, with controlled unease.)
```
The shorthand `#tts-openai[...]` is also accepted. `#tts(...)` is equivalent to providerless `#tts[...]` if parentheses read better in a local context. `tts-1` and `tts-1-hd` ignore these instructions because the OpenAI speech endpoint only supports the `instructions` request parameter for `gpt-4o-mini-tts`.
Keep instructions short and describe performance rather than content. OpenAI's TTS guide recommends using `gpt-4o-mini-tts` when you need controllable delivery; useful instruction targets include tone, emotional range, intonation, speaking speed, accent, impressions, and whispering. Good examples:
```ink
#tts[Speak with restrained concern and a slower pace.]
#tts[Whisper the line with controlled urgency.]
#tts-openai[Use a dry, formal tone; avoid melodrama.]
```
Avoid repeating the full dialogue in the instruction. Put the words to be spoken in the story text, and use `#tts` only to describe how the provider should read that block.
## Choice Metadata
Choice tags are placed on the Ink choice they belong to:
```ink
* [__Schaue__: Aus dem Fenster.]
#action:orientation
#key:l
```
Implemented choice metadata:
- `#key:x`: reserves keyboard key `X` for the choice.
- `#letter[x]`: older equivalent for reserving keyboard key `X`.
- `#action:group` or `#action[group]`: assigns the choice to an invisible action group.
- `#auto`: hides the choice from the visible list and lets the UI choose it automatically when it is ready.
The current UI renders all non-auto choices in one visible list. Choices are first grouped by `#action` in the order each new action group appears in the authored choice list. Choices inside each group are randomized. Choices without `#action` form one final unlabelled group shown after all tagged groups. Explicit keys are assigned before automatic keys; choices without explicit keys receive `1` through `0`, then `A` through `Z` in final visible order while skipping explicit keys. `#optional` choices are displayed italic. Grouping columns, `#gated[...]`, and `#sort[...]` are documented authoring conventions or future metadata, not fully implemented UI behavior yet.
Auto choices are ordinary Ink choices with a developer-facing choice text in `[...]`. The UI does not show that text in normal play, but Inky needs it for local testing and the text makes the source readable. Ink owns availability and once-only behavior; the UI owns automatic selection and timing. Supported forms:
```ink
* {condition}
[AUTO: Ereignisname] #auto
-> event
* {condition}
[AUTO: Ereignisname] #auto(2)
-> event
* {condition}
[AUTO: Ereignisname] #auto:tunnel(2)
-> event
```
`#auto` fires as soon as it is the first ready auto choice. `#auto(2)` waits at least two UI choice turns since the previous global auto trigger. `#auto:keyword(2)` waits only against the same keyword, so unrelated auto groups do not throttle each other. Use the global form when two different authored events must not fire immediately after each other. Use the colon form for keyed auto tags on choice lines.
## Popup And End-State Tags
These tags may appear as Ink global tags, paragraph tags, or empty tag-only lines. They are dispatched through the same tag channel as media tags.
```ink
#score[You reached the quiet ending.]
#error[The story ended unexpectedly.]
#achievement[First Steps]
#alert[Try examining objects before using them.]
```
- `#score[...]`: intended ending. When the turn reaches `inputMode: end`, the UI shows a localized ending popup with the tag value as the optional message.
- `#error[...]`: unrecoverable ending. The UI shows a localized error popup with the tag value as the optional message. The Ink engine emits this automatically if Ink runs out of content without an explicit `#score[...]` or `#error[...]`.
- `#achievement[...]`: queued localized achievement popup while the game continues.
- `#alert[...]`: queued localized player hint/tutorial popup while the game continues.
## Existing Media And Structure Tags
```ink
#chapter[Title]
#section
#textblock
#image[filename.png](landscape)
#image[filename.png](portrait pause=2)
#image[filename.png](square lead=1.5)
#music[track.mp3](crossfade, loop, lead=4)
#sfx[file.ogg](max=8 fade fade-duration=2)
```
Asset filenames resolve relative to the configured image, music, and sound folders.
+255 -23
View File
@@ -1,38 +1,270 @@
# AI Interactive Fiction
A modern take on classic text adventures that combines traditional world modeling with Large Language Models (LLMs) to create natural language interactive fiction experiences.
AI Interactive Fiction is a web and CLI text adventure prototype that combines a deterministic world model with LLM-assisted command interpretation and narrative output. The web client presents the story as an animated, novel-like book page with synchronized text animation, optional TTS, music, and sound effects.
## Project Overview
## Quick Start
This application reimagines the classic text adventure game genre by replacing the traditional parser with an LLM. The system consists of:
Use Node.js 22 LTS for development. The project accepts Node >= 18.17, but current development has been done on Node 22.
1. **World Model**: A traditional game engine that manages rooms, objects, actions, and game state - similar to old-school Infocom games.
```powershell
nvm install 22
nvm use 22
npm install
npm run build
npm run dev
```
2. **LLM Interface**: An AI layer that processes natural language input from players and translates it into actions the game engine can understand.
`npm run dev` and `npm run start` use `DEFAULT_GAME_ENGINE` from `.env` to choose the active engine. Supported values are `ink`, `yaml`, and `zcode`. The engine-specific scripts remain available when you want to bypass the default.
3. **Narrative Generation**: The LLM converts the world state changes into rich, contextual prose for the player.
Set `PORT` to choose a port; the server will try the next few ports if the requested one is already in use. Current engine defaults are YAML `3001`, Z-code `3002`, and Ink `3003` before port fallback.
## Key Features
## Commands
- **Natural Language Understanding**: Players can express their intent in plain language without worrying about specific command syntax.
- **Rich Narrative**: Dynamic descriptions that adapt to the current game state and player history.
- **Consistent World Model**: The underlying game engine enforces world rules to prevent hallucinations or inconsistencies.
- **Modular Design**: Easily swap between different world models, including YAML-based custom worlds or integrations with classic Z-machine games.
```powershell
npm run dev # Start the web UI through ts-node/nodemon
npm run start # Build/run the configured default engine from dist/
npm run dev:ink # Start the Ink engine server, watch ink source, compile on restart
npm run dev:yaml # Start the YAML engine server
npm run dev:zcode # Start the Z-code engine server
npm run start:ink # Build and run the compiled Ink engine server
npm run build # Compile TypeScript
npm run test # Run Jest tests
npm run lint # Run ESLint on src/
npm run start:cli # Run the CLI interface
npm run dev:cli # Run the CLI interface through ts-node/nodemon
```
## How It Works
Each game engine also has `:debug` and `:inspect` variants. `:debug` enables engine-specific diagnostic logging. `:inspect` starts Node with the inspector and currently also enables that engine's debug flag, so it is the combined debug-plus-inspector mode.
1. Player enters natural language input
2. LLM analyzes input and translates it into game actions
3. Game engine processes valid actions and updates the game state
4. LLM receives the state change information and generates narrative prose
5. Player receives the beautifully written response
## Docker / Coolify Ink Deployment
## Technical Structure
The included `Dockerfile` builds and serves the Ink engine only. Coolify can use the repository Dockerfile directly.
- YAML-based world definition (rooms, objects, actions)
- OpenRouter API integration for accessing suitable LLMs
- Modular design allowing for Z-machine integration in the future
Set the Coolify environment variables from `coolify.env.example`; at minimum:
## Getting Started
```text
NODE_ENV=production
DEFAULT_GAME_ENGINE=ink
PORT=3000
INK_CONFIG_FILE=./config/engines/ink.json
```
[Installation and running instructions will be added here]
The container compiles TypeScript during image build and compiles the configured Ink source to JSON when the server starts.
## Configuration
Environment variables are loaded from `.env`.
- `PORT`: preferred web server port.
- `DEFAULT_GAME_ENGINE`: engine used by `npm run dev` and `npm run start`; one of `ink`, `yaml`, or `zcode`.
- `DEFAULT_WORLD_FILE`: YAML world file to load. Defaults to `./data/worlds/example_world.yml`.
- `OPENROUTER_API_KEY`: API key for LLM command interpretation.
- `OPENROUTER_MODEL`: OpenRouter model name.
TTS provider settings are configured in the browser options menu and persisted in browser storage. Providers currently include `none`, browser speech synthesis, Kokoro, ElevenLabs, OpenAI, and local OpenAI-compatible servers. Production should not assume a universal TTS default; the game or player state selects the active mode, and `none` is the safe fallback.
## Starting A Game
The web client no longer starts the game automatically. Browsers require a user gesture before audio playback, so the right page initially shows a start prompt and the command input is hidden. Use `new game` or `load` in the top bar to start.
The placeholder server API supports:
- `newGame()`
- `loadGame(slot)`
- `saveGame(slot)`
- `hasSaveGame(slot)`
- `getSaveGames()`
- `isGameRunning()`
Save slots are positive integers. Save behavior is engine-specific: the Ink client/server path persists Ink state, client history, choices, media state, and playback position for browser save/load; YAML and Z-code persistence still need regression testing and cleanup.
## Web Client
The browser app is built from native ES modules in `public/js/`. The loader dynamically imports modules, applies a cache-busting query string during development, resolves declared dependencies, and awaits module initialization in dependency order before the UI becomes usable.
Major modules:
- `module-registry.js`, `base-module.js`, `loader.js`: module lifecycle, dependency graph, progress overlay, state reporting.
- `text-processor-module.js`, `paragraph-layout-module.js`, `layout-renderer-module.js`: SmartyPants, language-aware hyphenation, Knuth-Plass line breaking, DOM rendering.
- `markup-parser-module.js`: story markup fallback for chapters, sections, Markdown emphasis, right-page glossary notes, images, SFX, and music.
- `sentence-queue-module.js`, `playback-coordinator-module.js`, `animation-queue-module.js`: sentence preparation, synchronized playback, timing, fast-forward.
- `tts-factory-module.js` plus provider modules: TTS provider selection, voice settings, speed mapping, caching, and playback.
- `audio-manager-module.js`: master, speech, music, and sound effect volume, music playback, sound effects, and music ducking.
- `ui-controller-module.js`, `ui-display-handler-module.js`, `ui-input-handler-module.js`, `options-ui-module.js`: book UI, command input, options, top-bar controls, and game API calls.
- `choice-display-module.js`: choice-mode UI, click selection, keyboard-letter assignment, and future choice-template routing.
The static server sends no-cache headers for local development so stale ES modules do not mask changes. If the browser console shows `onpage-dialog.preload.js:121 Uncaught ReferenceError: browser is not defined`, ignore it; that comes from the installed ad blocker, not this project.
## Story Markup
Plain paragraphs are rendered paragraph by paragraph. Normal following paragraphs are horizontally indented and do not get a blank line between them. Special block markers change the treatment of the next paragraph.
Inline Markdown emphasis:
```text
*italic* or _italic_
**bold** or __bold__
***bold italic*** or ___bold italic___
```
Right-page glossary notes:
```text
The train stops at Eibenreith.
#gloss[Eibenreith](A fictional alpine town in the Kaiserpunk setting.)
```
Glossary markup is a normal story tag scoped to the paragraph/block it is attached to. The UI finds every matching visible instance of the term in that right-page block and adds a hover/focus note. The tag itself is not displayed, is not sent to TTS, and is ignored by choices and command history. Avoid raw Ink control characters in the explanation; `|`, `{`, and `}` must be escaped in Ink as `\|`, `\{`, and `\}` if they are needed literally.
TTS reading instructions:
```text
„Ich habe nichts gesehen“, sagt Viktor.
#tts[Read softly, with controlled unease.]
```
`#tts[...]` is scoped to the paragraph/block it is attached to and is sent only to providers that support per-request reading instructions. This providerless form is the normal authoring style; `#tts(...)` is equivalent if parentheses read better. Provider-specific forms are also accepted for overrides, for example `#tts[openai](Read softly.)` or `#tts-openai[Read softly.]`. Currently only OpenAI `gpt-4o-mini-tts` consumes the instruction.
Write TTS instructions as concise performance direction: tone, emotion, intonation, pace, accent, or whispering/singing style. Keep the spoken words in the paragraph itself and use the tag only to guide delivery.
Canonical block/media/control tags use Ink-style `#` syntax. In Ink these are real Ink tags. In YAML and Z-code narrative output, leading `#...` lines are parsed by the server into the same structured `StoryTag` objects before reaching the client. The browser only consumes structured `TurnResult` objects.
Tag format:
```text
#key
#key[value]
#key[value](options)
#key:value
```
For Ink choices, put choice-local tags under the choice they belong to. Explicit keyboard letters are supported with `# letter[x]`, `#letter[x]`, or the colon form `#key:x`; the client reserves those keys first, then assigns the remaining visible choices from `1` through `0`, then `A` through `Z` in visible order. `#optional` renders the choice in italic. `# action[name]` or `#action:name` assigns an invisible action group: group order follows the first appearance of each action tag in the authored list, entries inside each group are randomized, and choices without an action tag are grouped last.
`#auto` marks an Ink choice that the browser should choose automatically instead of rendering as a visible button. Auto choices still need a developer-facing bracket choice text so they remain testable in Inky. `#auto(2)` waits two UI choice turns since the last global auto trigger. `#auto:keyword(2)` waits two UI choice turns only since the last auto trigger with the same keyword. Use the colon form for keyed auto tags on choice lines.
Chapter:
```text
#chapter[The Mysterious Mansion]
The first paragraph uses a drop cap and no first-line indent.
Following paragraphs use the normal paragraph indent.
```
The heading is centered, italic, and uses the same text face as the body. The first paragraph after a chapter marker is unindented and receives the drop cap treatment.
Section or text block:
```text
#section
The first paragraph starts a separated block without horizontal indent.
The following paragraph returns to the normal indent.
```
`#textblock` is treated the same way. The first paragraph after the marker is separated from previous content by one line of vertical space.
Images are story blocks:
```text
#image[mansion-rain.jpg](landscape)
#image[portrait-letter.jpg](portrait pause=2)
#image[seal.png](square lead=1.5)
```
Image file names are relative to `public/images/`. `landscape`/`widescreen` and `square` images are centered, near full page width, and line-snapped. `portrait` images sit beside prose at half page width. Image pauses (`pause=`, `delay=`, `lead=`, or a bare `2s`) are skippable and do not block background TTS preparation.
Sound effects are story tags:
```text
#sfx[squeaky-door.ogg]
#sfx[church-bells.ogg](max=8 fade fade-duration=2)
The door opens and the hall exhales.
```
The tag is parsed by the server into a `StoryTag` object. Sound effect paths are relative to `public/sounds/`. Optional parameters can limit playback (`max=`, `duration=`, `stop-after=`, `fade-after=`), choose the end mode (`fade` or `stop`/`cut`), and set `fade-duration=`.
Music can be placed as a block:
```text
#music[rain-theme.ogg](crossfade, loop, lead=4)
```
Music paths are relative to `public/music/`. Supported modes are `queue`, `crossfade`, and `cut`. Use `loop` or `once` to control repetition. `lead=<seconds>` delays the following text/TTS paragraph so the music can play alone before narration continues. To place that pause between a chapter heading and the dropcapped first paragraph, put the music tag after the chapter tag and before the first prose paragraph; TTS generation for the next spoken paragraph continues during the lead pause.
Game-state and player-message tags:
```text
#score[You found the quiet ending.]
#error[Ink story ended without an explicit ending tag.]
#achievement[First Steps]
#alert[Try examining objects before using them.]
```
`#score[...]` marks an intended ending and opens a localized ending popup when the turn reaches `inputMode: end`. `#error[...]` marks an unrecoverable ending and opens an error popup. If an Ink story runs out of content without an explicit `#score[...]` or `#error[...]`, the Ink engine emits an `#error[...]` tag. `#achievement[...]` and `#alert[...]` open localized queued popups while the game continues.
## Architecture Documentation
`SPECIFICATION.md` is the canonical architecture and implementation specification. `TODO.md` is the canonical progress and remaining-work list. The former loose Ink and Z-code inclusion notes have been folded into those two files.
## Assets
- `public/sounds/`: sound effects referenced by `#sfx[file]` tags.
- `public/music/`: background music referenced by `#music[file](...)` tags.
- `public/images/`: story images referenced by `#image[file](...)`.
- `public/fonts/`: font assets used by the book UI.
Keep third-party assets licensed for local redistribution, and document source and license in the folder README or alongside the file.
## Typography And Playback Behavior
The renderer is designed to behave like a scaled static book page. The page keeps its aspect ratio, and text sizes and word positions scale relative to the page instead of reflowing unpredictably at small browser sizes.
Text processing order:
1. Parse story markup and remove non-display media markers.
2. Apply Markdown emphasis spans and right-page glossary annotations.
3. Run SmartyPants for typographic punctuation.
4. Apply Hyphenopoly for the selected language.
5. Calculate line breaks with the Knuth-Plass algorithm.
6. Render absolutely positioned word spans and animate them in sync with audio or estimated duration.
When real TTS audio is available, animation duration is driven by measured audio length. With TTS disabled or unavailable, duration is estimated from text length and the persisted speed setting.
Fast-forwarding by page click or space completes the active animation and fades/stops current TTS playback so queued content can proceed.
The right page history is line-addressed rather than natively scrolled. The page has a fixed line count, all block heights snap to whole lines, and the custom scrollbar represents virtual history line position. The DOM keeps a moving window of history blocks around the active line instead of paginating the story.
## Changelog
### 2026-05-17
- Added Ink engine support with source compilation, engine config files, game metadata, locale-driven UI text, choice mode, keyboard choice letters, and one-list choice rendering.
- Added line-addressed right-page history, save/load reconstruction, image restoration, custom scrollbar plumbing, and virtual block-window rendering.
- Added story image rendering for landscape, portrait, and square images, including line-snapped sizing and portrait text exclusion.
- Added localized popups for endings, errors, achievements, and alerts through the tag channel.
- Added credits and third-party license UI.
- Added per-volume mute toggles and configurable music ducking amount.
- Added German typography handling for dialogue guillemets based on game metadata language.
### 2026-05-14
- Consolidated usage, markup, and architecture documentation into `README.md` and `TODO.md`.
- Added no-cache static serving and module URL cache busting so browser reloads pick up JS changes reliably during development.
- Fixed module loader dependency ordering so modules are initialized only after their declared dependencies are ready.
- Added the placeholder game API for `newGame`, `loadGame`, `saveGame`, `hasSaveGame`, `getSaveGames`, and `isGameRunning`.
- Changed the web UI to require a manual game start before showing the command input, which keeps browser audio autoplay restrictions manageable.
- Implemented story markup for chapters, text blocks, Markdown emphasis, image placeholders, sound effects, and music cues.
- Added music block parameters for playback mode, loop/once behavior, and lead-in delay.
- Added sound and music asset folders and playback plumbing for sound effects and background music.
- Added music ducking while TTS is active.
- Reworked book typography around Knuth-Plass line breaking, Hyphenopoly hyphenation, SmartyPants, paragraph indentation rules, drop caps, and responsive page scaling.
- Reworked TTS provider behavior, speed mapping, persistence, caching keys, top-bar/options synchronization, and OpenAI voice validation.
- Added development notes for ignoring the unrelated ad-blocker console error.
### Earlier Prototype Work
- Established the original animated fiction prototype with inkjs, SmartyPants, Hyphenopoly, Knuth-Plass line breaking, custom animation scheduling, save/load concepts, and media tags.
- Split the client from a monolithic prototype into focused modules for text processing, layout, animation, audio, persistence, TTS, and UI control.
+305
View File
@@ -0,0 +1,305 @@
# AI Interactive Fiction Specification
This is the single architecture and behavior specification for the project. Usage and changelog live in `README.md`; actionable work items live in `TODO.md`; authoring conventions live in `MARKUP_GUIDELINES.md`.
## Product Goal
AI Interactive Fiction is a shared book-style web client plus interchangeable game engine servers. The client renders interactive fiction as animated, carefully typeset illustrated prose with optional speech, music, sound effects, images, choices, and command input. Game engines own game state and emit a shared structured protocol.
The production client must tolerate speech being unavailable. The safe TTS provider default is `none`; a game or player preference may select another provider.
## Repository Layout
- `public/`: shared browser UI, assets, fonts, client modules, third-party browser libraries.
- `src/`: TypeScript servers, shared protocol types, engine implementations, YAML world model, CLI support.
- `config/engines/`: per-engine configuration files.
- `data/ink-src/`: Ink source files.
- `data/ink/`: compiled Ink JSON output.
- `data/worlds/`: YAML world files.
- `data/z-code/`: Z-machine story files such as `zork1.bin`.
- `data/zcode-prompts/`: prompt templates used by the current LLM-mediated Z-code narrator.
- `scripts/`: project utility scripts. Currently used: `check-node-version.js` and `run-engine.js`.
- `templates/`: not present in the current repository and not used.
## Text Encoding
Ink source files and game UI localization files must be saved as UTF-8 and must contain the real written characters. German text uses full umlauts and special characters directly, for example `ä`, `ö`, `ü`, `Ä`, `Ö`, `Ü`, `ß`, and German quotation marks `„…“`. Do not transliterate German into `ae`, `oe`, `ue`, or `ss` as an encoding workaround.
## Agent Editing Safety
These rules are mandatory for AI/Codex work on authored text:
- Do not alter authored prose, Ink text, generated character text, documentation prose, or localization text through regex, bulk replacement, or scripted text rewrites.
- Use `apply_patch` only for text edits.
- For PowerShell commands that read or display text, set `$OutputEncoding` and `[Console]::OutputEncoding` to UTF-8 first.
- Before large text work, create a git check-in.
- Edit entry by entry, inspect each edited entry after changing it, and proceed sequentially. No generated shortcuts.
## Ink Authoring State
Use Ink's built-in visit state for simple facts such as "this knot has been shown". Do not create parallel boolean flags for knot visits.
Use a separate `LIST` with the `state_*` helpers whenever a tracker expresses a linear process, even if it has only two states such as "begun" and "completed". A later state in such a list is a high-watermark and implies the earlier states. Prefer several small parallel progress lists over one overpacked encounter state when that is cleaner for authoring, knowledge modelling, or NPC reasoning. This matches the Inkle-style knowledge-base pattern: independent lines of knowledge and progress advance separately, then content queries the combination.
Use `state_reach(first_state)` to begin a progress chain. Use `state_reach_if_started(later_state)` when a normal action can advance or complete a chain only if that chain is already active. This prevents generic actions such as washing hands or inspecting an object from retroactively starting a task they merely could have fulfilled.
Use `mark`, `has`, and `lacks` only for a coherent group of independent facts that can be true separately and do not imply one another.
Eibenreith authored content uses a mandatory bucket architecture. Rooms are installed through `enter_room(location, entry, look, exits, bucket)`. The active choice surface collects choices in this order: moment, room entry/look, exits, episode, game. Chosen atomic content ends with `-> TURN`; bucket/provider knots end with `-> DONE`. Authored chapter files must not call the internal `provide_choices` implementation directly.
The canonical format for conditioned atomic bucket weaves is a multi-line choice header: choice marker, one precondition per following header line, then the choice text on its own header line. Example: `* {condition_one}` / ` {condition_two}` / ` [__Verb Charakter__: "..."]`. Naked condition lines before a choice do not gate that choice and are forbidden for bucket atoms. Visibility conditions belong in the choice header, not in the branch body.
`helpers.ink` owns global helper variables, helper functions, `TURN`, and active choice-surface dispatch. `buckets.ink` owns the game-wide bucket. Even when empty, `game_bucket` remains a real content bucket and must stay available for cross-episode game material.
Companion-aware dialogue and reunion reactions must use the central Ink contact manager instead of room-specific flags. `present(character)` checks whether an NPC is in the current room. `first_meeting(character)`, `reunion(character)`, and `parting(character)` are one-choice-surface transition helpers created by traversal and cleared automatically by the next turn. Authored content may query these helpers but must never clear or consume contact transitions manually. `alone()` is true when no tracked NPC is present. `alone_with(character)` is true when exactly that tracked NPC is present, and is intended for private dialogue options.
`loc_move_to(location)` updates Valerie's current location, records traversal origin and destination, moves active companions, and refreshes contact state. `companion_join(character)` and `companion_leave(character)` only control whether a character follows Valerie through traversal; they are not story-memory flags. Episode setup is responsible for initial character locations and companion state. After manual multi-character setup, call `contact_sync()` to establish current contact without firing first-meeting or reunion transitions.
Episodes may install an optional companion transition bucket through `enter_episode(value, slot, start_bucket, end_bucket, episode_bucket, companion_transition_bucket)`. The room engine plays that bucket centrally on every `enter_room(...)` after movement. Companion traversal prose belongs there and should use `accompanied_by(character)` together with `traversal_from(...)`, `traversal_to(...)`, or `traversal_between(origin, destination)`. Do not duplicate companion-following narration inside individual exits unless the exit has genuinely unique story action.
Room look commands are lifecycle-managed by the Ink room engine. The look bucket passed to `enter_room(...)` is offered only after Valerie re-enters a room she has previously left. Once the current look bucket has been selected during this room visit, shared Ink visit tracking hides it until the next leave-and-reenter cycle. Authored room look content must keep the `#key:l` convention and must not add custom seen/look flags.
Player-choice impact uses three distinct mechanisms. Cascades use semantic state chains when a choice changes the route, episode outcome, or later structure. Callbacks use named facts for exact remembered choices. Heuristics use route counters and relationship-matrix queries to color tone or summarize repeated patterns. Do not use a route heuristic when the later text needs to remember one specific earlier line.
When multiple choices from one prioritized family can appear on the same choice surface, use `claim_choice_gate_if(gate, available)` to allow only the first valid item in source order. This is mainly for `#auto` families such as Viktor return comments, which should also include a contact transition such as `reunion(viktor)` in their availability expression. The helper is transient and resets at the start of every `provide_choices`; it must not be used as story memory.
Delayed events that should advance while arbitrary bucket content is chosen use named turn timers. Timer IDs are LIST values. `timer_start(timer_id, turns)` restarts that named timer after removing it from all timer buckets. Expired timers remain ready until `timer_due(...)` or `timer_due_if(...)` claims them; claimed timers remain visible for the current turn and are cleared centrally by the next `TURN`. Content must not implement private countdown variables for reusable timed behavior.
## Choice Text Perspective
Choice text must describe the player character's intention before the action is taken. Do not write choices from a post-hoc author perspective that reveals what the branch will discover. For example, use "try the door" before the destination is known, not "go to the second-class cars"; use automatic or hidden events for things the player character cannot control, such as the train entering a tunnel.
## Engine Selection And Commands
`DEFAULT_GAME_ENGINE` in `.env` selects the engine used by:
```text
npm run dev
npm run start
```
Supported values are `ink`, `yaml`, and `zcode`.
Engine-specific commands bypass the default:
```text
npm run dev:ink
npm run dev:yaml
npm run dev:zcode
npm run start:ink
npm run start:yaml
npm run start:zcode
```
`dev:*` runs TypeScript through `ts-node` and `nodemon`. `start:*` runs compiled JavaScript from `dist/` and builds first through `prestart:*`. `*:debug` enables the engine's debug environment flag. `*:inspect` starts Node inspector and currently also enables debug for that engine.
The CLI path is YAML-only and uses `src/index.ts --cli`. It is useful for testing the YAML `GameRunner` without the browser UI. The old `test-server-yaml.ts` is a legacy static/YAML harness and should be removed once no workflow depends on it.
## Shared Server Protocol
All engines communicate with the browser through Socket.IO and the same game API:
```text
newGame()
loadGame(slot)
saveGame(slot)
hasSaveGame(slot)
getSaveGames()
isGameRunning()
chooseChoice(index)
```
The Ink engine additionally supports browser-owned session recovery:
```text
resumeGame(savedInkState)
exportGameState()
```
`exportGameState()` returns the current Ink state without creating a server-side save slot. The client stores that state with story history, choices, input mode, and media state in IndexedDB. `resumeGame(savedInkState)` rehydrates a fresh server-side InkEngine after a socket reconnect or browser reload without emitting duplicate narrative. This keeps durable player-specific state client-side for hosted multi-client Ink deployments.
Line-input engines also use `playerCommand` for free text.
Every engine emits `TurnResult` objects:
```ts
interface TurnResult {
turnId: number;
paragraphs: Array<{ text: string; tags?: StoryTag[] }>;
choices: ChoiceResult[];
inputMode: 'text' | 'choice' | 'end' | 'none';
globalTags?: StoryTag[];
gameState?: {
score?: number;
endState?: { type: 'intended' | 'error'; message?: string };
};
suggestions?: string[];
}
```
The browser consumes structured `TurnResult` data only. YAML and Z-code servers must parse or synthesize the same tag objects that Ink exposes through native tags.
## Game Engines
### YAML Engine
- Config: `config/engines/yaml.json`
- Server: `src/server-yaml.ts`
- World model: `data/worlds/*.yml`
- CLI entry: `src/index.ts --cli`
The YAML engine is no longer the architectural default; it is one engine beside Ink and Z-code. It uses `GameRunner`, `GameEngine`, and `YamlWorldParser`, emits `inputMode: 'text'`, and remains the best test bed for deterministic world-model plus LLM command interpretation.
### Ink Engine
- Config: `config/engines/ink.json`
- Server: `src/server-ink.ts`
- Engine: `src/engine/ink-engine.ts`
- Source: `data/ink-src/eibenreith/main.ink` plus included chapter files.
- Compiled output: `data/ink/eibenreith.ink.json`
The Ink server compiles source at startup using `inkjs/full`, then runs the compiled story with `inkjs`. Ink choices become `ChoiceResult` objects. Ink tags become shared `StoryTag` objects. Choice preview tags support `#key`, `#letter`, `#optional`, `#action`, `#gated`, `#sort`, and `#auto`.
The server keeps only ephemeral per-socket InkEngine instances. Browser IndexedDB owns durable Ink saves and the current autosave. If the socket reconnects or the page reloads, the browser sends the autosaved Ink state to `resumeGame()` and restores rendered history locally.
Ink does not provide arbitrary string input as a native async primitive comparable to choices. Future text-input turns should be implemented through a tag such as `#input[name](prompt)`: the server returns `inputMode: 'text'`, the UI shows command input for one round, then the server stores the submitted string into an Ink variable and continues.
### Z-code Engine
- Config: `config/engines/zcode.json`
- Server: `src/server-zcode.ts`
- Engine: `src/engine/zcode-llm-engine.ts`
- Story file: `data/z-code/zork1.bin` by default.
- Prompt templates: `data/zcode-prompts/*.yml`
The engine name is Z-code. Zork I is only the current game file and prompt target. The current implementation runs a Z-machine story through `ifvms`, keeps Z-machine state authoritative, and uses an LLM to translate natural-language input into parser commands and rewrite raw Z-machine output into prose.
Future work should separate Z-code-generic logic from Zork-specific prompt content more clearly.
## Client Module System
The browser client uses native ES modules, no bundler. The loader imports modules, analyzes dependency declarations, initializes modules in dependency order, tracks state/progress, and hides the loading overlay only when initialization and progress exit animations are complete.
Rules:
- Every app module extends `BaseModule`.
- Every app module registers with `moduleRegistry`.
- Required dependencies must be listed in `dependencies`.
- Modules should use authoritative dependencies instead of local fallbacks.
- Do not add fallback paths to hide bad dependency declarations or ordering bugs.
- `setTimeout` must not paper over initialization races. It is acceptable for animation, debounce, throttle, and browser rendering timing when locally justified.
Core modules:
- `loader.js`: module script loading, progress UI, dependency diagnostics.
- `module-registry.js`: registration and readiness promises.
- `base-module.js`: lifecycle, progress, state, event cleanup.
Primary client responsibilities:
- Text and typography: `text-processor`, `paragraph-layout`, `layout-renderer`.
- Markup: `markup-parser`.
- Queue/playback: `text-buffer`, `sentence-queue`, `playback-coordinator`, `animation-queue`.
- Audio/TTS: `audio-manager`, `tts-factory`, provider modules.
- UI: `ui-controller`, `ui-display-handler`, `ui-input-handler`, `choice-display`, `options-ui`, `ui-effects`.
- Persistence/history: `persistence-manager`, `story-history`.
- Networking: `socket-client`.
Known cleanup candidates: `debug-utils-module.js` is not loaded; `game-loop-module.js` still contains high-level glue from older architecture and should be audited before removal.
## Text Pipeline
Processing order:
1. Receive structured blocks and tags from a game engine.
2. Parse inline story markup and remove media markers from display/TTS text.
3. Apply Markdown emphasis.
4. Apply locale-aware SmartyPants typography.
5. Apply Hyphenopoly for the game metadata language.
6. Measure text using the exact page font settings.
7. Run Knuth-Plass line breaking.
8. Render absolutely positioned words into the page line-coordinate model.
9. Animate words in sync with measured TTS duration or estimated duration.
The external Knuth-Plass library should not be locally modified. Adaptation belongs in our modules.
## Right Page Layout And History
The right page is a virtual line-addressed content pane:
- `#page_right` does not use native scrolling.
- Page height is divided into `PAGE_LINE_COUNT = 25`.
- All block heights, margins, image spacing, and chapter/section spacing are exact line multiples.
- Stored block positions are line coordinates, not pixels.
- Window resize recalculates pixels from line coordinates.
- New content appends at the live bottom.
- Manual scrolling moves the active line and keeps a window of nearby blocks loaded.
- The custom scrollbar represents virtual line history, not DOM scroll state.
Portrait images may overlap line ranges with text next to them, but edges must still land on line boundaries.
## Markup And Tags
Canonical tag syntax:
```text
#key
#key[value]
#key[value](options)
#key:value
```
Supported story tags include:
- `#chapter[Title]`
- `#section` / `#textblock`
- `#image[file](landscape|portrait|square pause=2)`
- `#sfx[file](max=8 fade fade-duration=2)`
- `#music[file](crossfade loop lead=4)`
- `#gloss[term](definition)`
- `#tts[instruction]`
- `#tts(instruction)`
- `#tts[provider](instruction)` / `#tts-openai[instruction]`
- `#score[...]`
- `#error[...]`
- `#achievement[...]`
- `#alert[...]`
Choice tags:
- `#key:x` or `#key[x]`
- `#letter[x]`
- `#optional`
- `#action[name]`
- `#auto`, `#auto(2)`, `#auto:keyword`, `#auto:keyword(2)`
The active choice UI is one list. Explicit keys are reserved first, then remaining choices receive `1` through `0`, then `A` through `Z`.
Before key assignment, choices are ordered by invisible `#action` groups. The first appearance of each action group in the authored list determines group order. Choices inside each group are randomized for presentation. Choices without an action group form one final group shown last. Group labels are not displayed.
`#auto` marks an ordinary Ink choice that should not be rendered as a visible button. Auto choices still need a developer-facing bracket choice text, for example `[AUTO: Tunnelspiegelung]`, so the Ink remains testable in Inky. The browser selects the first ready auto choice when the choice surface becomes ready. Ink still owns availability and once-only behavior through normal choice syntax and conditions. A numeric parameter delays the trigger by UI choice turns since the last matching auto trigger. Without a keyword the delay is global; with a keyword it applies only to that keyword. Use global `#auto(n)` when different auto events must not happen back-to-back, and keyworded `#auto:name(n)` when only repeated events of the same class should be spaced out. Use the colon form for keyed auto tags on choice lines.
TTS instruction tags are paragraph/block metadata. They are ignored by renderers and by providers that do not support per-request reading instructions. Providerless `#tts[...]` and `#tts(...)` are the default authoring forms; provider-specific forms are optional filters for provider overrides. OpenAI consumes matching instructions only for `gpt-4o-mini-tts`, where they are sent as the Speech API `instructions` field. Instructions should describe delivery, such as tone, emotion, intonation, pace, accent, whispering, humming, or singing style.
Markdown emphasis:
```text
*italic* or _italic_
**bold** or __bold__
***bold italic*** or ___bold italic___
```
## Audio, TTS, And Media
TTS providers currently include `none`, Browser Speech, Kokoro, ElevenLabs, OpenAI, and local OpenAI-compatible servers. Provider modules exist, but Browser Speech and Kokoro need focused validation before being considered production-ready.
TTS cache keys include provider, voice, provider speed value, language, and exact normalized TTS string. Fast-forward must accelerate visible animation and fade/stop active TTS without cancelling background generations unless the foreground block has been waiting long enough.
Music and sound effects are preloaded when requested. Music can queue, crossfade, cut, loop, play once, and lead into following text. Music ducks by a persisted percentage during TTS playback.
## Documentation Source Of Truth
- `README.md`: usage, commands, changelog, concise feature summary.
- `SPECIFICATION.md`: architecture and behavior.
- `TODO.md`: active status and backlog.
- `MARKUP_GUIDELINES.md`: writing/authoring rules for story files.
- `THIRD_PARTY_NOTICES.md` and `public/THIRD_PARTY_NOTICES.md`: license/credits material.
+47
View File
@@ -0,0 +1,47 @@
# Third-Party Library Audit
Date: 2026-05-17
## Summary
The project currently uses the expected browser-side typography/story libraries plus additional runtime packages:
- inkjs
- SmartyPants.js
- Hyphenopoly
- Knuth-Plass line breaking support (`knuth-and-plass.js`, `linebreak.js`, `linked-list.js`)
- Kokoro JS browser bundle
- Server/runtime npm packages: Express, Socket.IO, OpenAI SDK, Axios, cors, dotenv, js-yaml, ifvms
- EB Garamond font files
## Browser-vendored files
| Component | Files | Upstream/latest check | Local status |
| --- | --- | --- | --- |
| SmartyPants.js | `public/js/smartypants.js` | Local header says `smartypants.js 0.0.6`; npm `smartypants` latest is `0.2.2`. The old `smartypants.js` package name is unpublished from npm. | Not byte-identical to npm `smartypants` 0.0.5, 0.0.9, or 0.2.2. Treat as modified/older vendor code. |
| Hyphenopoly browser files | `public/js/Hyphenopoly.js`, `public/js/Hyphenopoly_Loader.js`, `public/js/hyphenopoly.module.js`, `public/js/patterns/*.wasm` | Browser header says `5.2.0-beta.1`; npm dependency is `6.0.0`; npm latest is `6.1.0`. | `Hyphenopoly.js` is effectively 5.2.0-beta.1 after line-ending normalization. `Hyphenopoly_Loader.js` has a small local/prototype difference in `H.hide`. Browser copy is older than package/latest. |
| Knuth-Plass adapter | `public/js/knuth-and-plass.js` | No authoritative upstream identified from headers or npm metadata. | Modified from the prototype copy and currently application-owned adapter code. |
| Line breaking support | `public/js/linebreak.js`, `public/js/linked-list.js` | No authoritative upstream identified from headers. Not the npm `linebreak` package 1.1.0. | Identical to prototype copies. `linked-list.js` still has a suspicious `get last() { return this.last; }` accessor inherited from the prototype. |
| Kokoro JS browser bundle | `public/js/kokoro-js.js` | npm `kokoro-js` latest is `1.2.1`; installed is `1.2.0`. | Byte-identical to `kokoro-js@1.2.0/dist/kokoro.web.js`; not latest. |
## Direct runtime npm packages
| Package | Installed | Latest checked | License | Status |
| --- | --- | --- | --- | --- |
| `inkjs` | 2.4.0 | 2.4.0 | MIT | Current. |
| `hyphenopoly` | 6.0.0 | 6.1.0 | MIT | Not latest. Browser vendored files are older than this dependency. |
| `kokoro-js` | 1.2.0 | 1.2.1 | Apache-2.0 | Not latest. |
| `ifvms` | 1.1.6 | 1.1.6 | MIT | Current. |
| `openai` | 4.91.0 | 6.38.0 | Apache-2.0 | Not latest major. |
| `socket.io` | 4.8.1 | 4.8.3 | MIT | Not latest patch. |
| `express` | 5.1.0 | 5.2.1 | MIT | Not latest patch. |
| `axios` | 1.8.4 | 1.16.1 | MIT | Not latest. |
| `cors` | 2.8.5 | 2.8.6 | MIT | Not latest patch. |
| `dotenv` | 16.4.7 | 17.4.2 | BSD-2-Clause | Not latest major. |
| `js-yaml` | 4.1.0 | 4.1.1 | MIT | Not latest patch. |
## Notices
The UI-readable license and credit notice is `public/THIRD_PARTY_NOTICES.md`.
The root `THIRD_PARTY_NOTICES.md` points to that served file so the repository has an obvious project-level notice entry.
+7
View File
@@ -0,0 +1,7 @@
# Third-Party Notices
The browser-visible third-party notices and license text live at:
`public/THIRD_PARTY_NOTICES.md`
That file is served by the game UI and is the source used by the in-game credits dialog.
+111 -88
View File
@@ -1,106 +1,129 @@
# Module System Refactoring TODO
# TODO And Progress
## High Priority (Critical Architectural Issues)
This is the active implementation checklist. Architecture lives in `SPECIFICATION.md`; usage lives in `README.md`; authoring conventions live in `MARKUP_GUIDELINES.md`.
### 1. Asynchronous Flow Control Improvements
- [ ] Remove all `setTimeout` calls used for synchronization in modules
- [X] Replace timeout in `browser-tts-handler.js` with proper Promise handling for voice loading
- [X] Eliminate race condition in `tts-player.js` that uses a hard-coded 1000ms timeout
- [ ] Remove all `setTimeout` calls in `ui-controller.js` for UI updates
- [ ] Implement proper Promise-based flow control in all modules
- [ ] Update `kokoro-handler.js` to correctly handle loading events
- [ ] Ensure all `async/await` patterns follow best practices
- [ ] Fix race conditions in module loading sequences
## Current Status
### 2. Module State Management
- [ ] Fix premature reporting of `FINISHED` state
- [ ] Ensure `tts-player.js` properly waits for Kokoro loading before reporting FINISHED
- [ ] Add proper state checks in all modules before reporting FINISHED
- [ ] Implement proper state transition reporting
- [ ] Update modules to use event system for reporting state transitions
- [ ] Add better error handling during module initialization
- The shared client is feature-rich enough for Ink gameplay: line-based book layout, animated text, TTS, music, sound effects, images, choices, glossary notes, save/load restoration, and localized UI are implemented.
- The Ink engine is the current primary development engine.
- The YAML engine and Z-code engine need regression testing after the Ink-heavy client changes.
- Browser TTS and Kokoro provider modules exist but are not yet proven reliable.
- The codebase still contains logging noise and older architecture fragments that need cleanup.
### 3. Module Dependencies & Loading
- [ ] Fix missing dependency declarations
- [ ] Update `ui-controller.js` to properly declare its TTS dependency
- [ ] Ensure all modules correctly specify all dependencies
- [ ] Remove dependency availability checks within modules
- [ ] Remove conditional checks like `if (!this.ttsHandler)` in `ui-controller.js`
- [ ] Rely on the module loader for dependency management
## Shared Client
## Medium Priority (Functionality & Implementation Issues)
### Completed
### 4. TTS Handler Implementation
- [ ] Implement missing `tts-handler.js` file content
- [ ] Create proper implementation with consistent interface
- [ ] Ensure it uses proper event-based communication
- [ ] Fix inconsistent event usage across TTS handlers
- [ ] Replace direct callbacks with event system
- [ ] Standardize event names and parameters
- [x] Native ES module loader, dependency graph, progress overlay, and ordered initialization.
- [x] Responsive book layout that scales page, font sizes, and word positions relative to page size.
- [x] SmartyPants, German guillemet normalization, Hyphenopoly, and Knuth-Plass layout.
- [x] Paragraph/chapter/section/drop-cap rules.
- [x] Markdown emphasis with `*` and `_` syntax.
- [x] Right-page `#gloss[term](definition)` hover/focus notes.
- [x] Image rendering for landscape, square, and portrait cases, with history/save restoration.
- [x] Sound effect and music playback, including music lead-in, loop/once, and ducking.
- [x] TTS `none`, OpenAI, local OpenAI-compatible, ElevenLabs, Browser Speech, and Kokoro provider modules.
- [x] TTS cache keys include provider, voice, speed, language, and exact normalized string.
- [x] Persisted speech enable state, provider, voice, speed, language, and volume preferences.
- [x] Fast-forward for text animation and active TTS fade/stop.
- [x] Choice UI, explicit keys, automatic key assignment, optional-choice styling, click and keyboard selection.
- [x] Localized popups for endings, errors, achievements, and alerts.
- [x] Credits/license dialog.
- [x] Line-addressed history scrolling model.
- [x] Choice-return turns continue to the choice point when autoplay is off.
### 5. Animation Queue Enhancements
- [ ] Implement proper queue control mechanisms
- [ ] Add pause/resume functionality
- [ ] Implement more robust animation timing
- [ ] Add priority management for animations
### In Progress
### 6. UI Controller Cleanup
- [ ] Fix duplicate methods in UI Controller
- [ ] Deduplicate code for creating UI elements
- [ ] Consolidate event handling functions
- [ ] Remove redundant `ModuleEvent` class implementation
- [ ] Use the shared implementation from `base-module.js`
- [ ] Polish custom scrollbar dragging so the thumb moves freely during drag and commits the scroll target only on release.
- [ ] Tighten automated checks around top-bar/options state initialization after reload.
- [ ] Improve automated visual regression coverage for page scaling, drop caps, image wrapping, and paragraph indentation.
- [ ] Improve automated audio tests for music ducking, sound effect timing, and fast-forward fadeout.
- [ ] Validate provider-specific speed conversion for all TTS providers against real API behavior.
### 7. Kokoro Loading Implementation
- [ ] Implement proper `requestIdleCallback` for Kokoro loading
- [ ] Follow the pattern described in the specification
- [ ] Add progress reporting during Kokoro loading
- [ ] Fix event handling for loading completion
### Pending
## Lower Priority (Refinements & Optimizations)
- [ ] Add a logging module with levels/categories to reduce console output and improve runtime performance.
- [ ] Show startup warnings/instructions when TTS APIs still need to be selected or configured.
- [ ] Put production-ready default option values into code/config.
- [ ] Get Browser TTS working reliably.
- [ ] Get Kokoro.js TTS working for English-language games.
- [ ] Get Kokoro.js TTS working for German-language games.
- [x] Add a TTS module for self-hosted or local OpenAI-compatible servers.
- [ ] Test every documented `#tag` parameter and effect against parser, server, client rendering, playback, and save/load behavior.
- [ ] Remove local file paths and diff-comments from third-party license markdown, refresh included third-party licenses/material, update external libraries where possible, and move any local modifications into our code.
- [ ] Improve credits page layout with more window height, a larger notices markdown pane, and a Hollywood-style title scroll for creative credits.
- [ ] Clean up unused modules, obsolete functions, legacy comments, and vestigial fragments from older architectures.
- [ ] Add optical margin alignment/punctuation protrusion as typography polish if current hanging punctuation proves insufficient.
### 8. Code Quality & Consistency
- [ ] Standardize module registration pattern
- [ ] Ensure all modules follow the same pattern
- [ ] Fix inconsistencies in export approaches
- [ ] Improve module progress reporting
- [ ] Make progress reporting more granular
- [ ] Add more descriptive status messages
## Shared Server Architecture
### 9. Error Handling Improvements
- [ ] Add better error recovery mechanisms
- [ ] Implement fallbacks for critical failures
- [ ] Add user-friendly error messages
- [ ] Improve error logging
- [ ] Add structured error reporting
- [ ] Implement debugging tools
### Completed
### 10. Performance Optimizations
- [ ] Optimize module loading sequence
- [ ] Prioritize critical modules
- [ ] Defer non-essential loading
- [ ] Improve resource utilization
- [ ] Minimize memory footprint
- [ ] Reduce CPU usage during animations
- [x] Shared `TurnResult` protocol used by all engines.
- [x] Shared game API shape: `newGame`, `loadGame`, `saveGame`, `hasSaveGame`, `getSaveGames`, `isGameRunning`.
- [x] Per-engine config files with metadata, locale, main game file, and asset paths.
- [x] `.env` default engine selection for `npm run dev` and `npm run start`.
- [x] Engine-specific dev/start/debug/inspect scripts.
- [x] YAML server renamed to `server-yaml.ts` so it is no longer implied as the generic server.
- [x] Z-code server/config/scripts use `zcode` naming; Zork is only the current story/prompt target.
## Documentation & Testing
### Pending
### 11. Documentation
- [ ] Add JSDoc comments to all public methods
- [ ] Create architectural documentation
- [ ] Document module dependencies
- [ ] Explain event system
- [ ] Add example usage for modules
- [ ] Extract duplicated Express/Socket.IO/static-file/port-fallback setup into a shared server base.
- [ ] Replace session-local placeholder saves with durable server-side or browser-coordinated saves where appropriate.
- [ ] Clean up start scripts and add a Dockerfile for hosting the selected engine on Coolify.
- [ ] Decide whether `src/index.ts` should remain as the YAML CLI entry or be replaced by clearer `cli-yaml.ts` and engine-specific launchers.
- [ ] Remove `test-server-yaml.ts` if no current workflow depends on it.
- [ ] Add logger configuration to scripts: `LOG_LEVEL`, `LOG_CATEGORIES`, and engine debug defaults.
### 12. Testing
- [ ] Create unit tests for modules
- [ ] Implement integration tests for module system
- [ ] Add browser compatibility tests
## Ink Engine
## Future Enhancements
### Completed
### 13. New Features
- [ ] Add module versioning support
- [ ] Implement module hot-reloading
- [ ] Create plugin system for extending modules
- [ ] Add internationalization support for UI
- [x] Ink source compilation through `inkjs/full`.
- [x] Split Ink source files with a master include file.
- [x] Ink metadata handoff to client.
- [x] Ink choices converted to `ChoiceResult`.
- [x] Ink tags converted to shared `StoryTag`.
- [x] Choice preview tags for `#key`, `#letter`, `#optional`, `#action`, and `#auto`.
- [x] Save/load of Ink state plus client history state.
- [x] `#score`, `#error`, `#achievement`, and `#alert` tag behavior.
- [x] `#gloss[term](definition)` support on right-page text.
### Pending
- [ ] Add text-input turns to Ink games, switching the UI to command input for one round and returning to choices afterward.
- [ ] Add a full dynamic description of the created character to the score panel after the game intro.
- [ ] Continue authoring and testing Eibenreith content.
- [ ] Test all documented tag syntax inside real Ink source, including edge cases with includes and choice-local tags.
## YAML Engine
### Completed
- [x] Deterministic YAML world model and `GameRunner`.
- [x] YAML CLI path for testing without browser UI.
- [x] YAML web server emits `TurnResult` objects.
### Pending
- [ ] Test/debug the YAML engine after Ink-driven client changes.
- [ ] Continue development of the YAML engine.
- [ ] Replace command mirroring with the full LLM/world-model command loop when typography/audio testing no longer needs mirroring.
- [ ] Validate YAML-generated `#` tags through the shared parser/protocol path.
## Z-code Engine
### Completed
- [x] Z-code naming for engine scripts/config/server.
- [x] Current Zork I narrator implementation using `ifvms` plus OpenRouter prompt templates.
- [x] Z-code engine emits shared `TurnResult` objects.
### Pending
- [ ] Test/debug the Z-code engine after Ink-driven client changes.
- [ ] Finish the Z-code version: optimize prompt templates, choose the best LLM for the task, and test project memory behavior.
- [ ] Separate Z-code-generic logic from Zork-specific prompt assumptions.
- [ ] Validate save/restore of Z-machine state.
- [ ] Merge this branch with `master` after YAML and Z-code regression testing.
+20
View File
@@ -0,0 +1,20 @@
{
"engine": "ink",
"locale": "de_DE",
"paths": {
"mainGameFile": "data/ink/eibenreith.ink.json",
"inkSource": "data/ink-src/eibenreith/main.ink",
"inkCompiled": "data/ink/eibenreith.ink.json",
"music": "public/music",
"sfx": "public/sounds",
"images": "public/images"
},
"metadata": {
"title": "Eibenreith",
"author": "Georg Tomitsch",
"subtitle": "Ein Kaiserpunk Abenteuer",
"version": "0.1.0",
"language": "de_DE",
"copyright": "© 2026 Bad Tools Studio"
}
}
+18
View File
@@ -0,0 +1,18 @@
{
"engine": "yaml",
"locale": "en_US",
"paths": {
"mainGameFile": "data/worlds/example_world.yml",
"music": "public/music",
"sfx": "public/sounds",
"images": "public/images"
},
"metadata": {
"title": "The Mysterious Mansion",
"author": "AI Interactive Fiction",
"subtitle": "An open-world text adventure",
"version": "1.0.0",
"language": "en_US",
"copyright": "Prototype content for local development."
}
}
+19
View File
@@ -0,0 +1,19 @@
{
"engine": "zcode",
"locale": "en_US",
"paths": {
"mainGameFile": "data/z-code/zork1.bin",
"promptDir": "data/zcode-prompts",
"music": "public/music",
"sfx": "public/sounds",
"images": "public/images"
},
"metadata": {
"title": "Zork I",
"author": "Infocom",
"subtitle": "A narrated Z-code adventure",
"version": "1.0.0",
"language": "en_US",
"copyright": "Use only with a legally supplied Z-code story file."
}
}
+11
View File
@@ -0,0 +1,11 @@
# Coolify environment for the Ink-only web deployment.
# Set these in Coolify's environment variable UI, not in a committed .env file.
NODE_ENV=production
DEFAULT_GAME_ENGINE=ink
PORT=3000
INK_CONFIG_FILE=./config/engines/ink.json
# Optional server-side LLM variables are only needed by non-Ink engines.
# OPENROUTER_API_KEY=
# OPENROUTER_MODEL=
+110
View File
@@ -0,0 +1,110 @@
// Eibenreith.ink
// Main index file for the German intro of the choice-based horror text game.
// This file contains global state, global functions, the initial divert, INCLUDE statements,
// and an index of important knots. Chapter content lives in separate .ink files.
// -----------------------------------------------------------------------------
// INCLUDES
// -----------------------------------------------------------------------------
INCLUDE eibenreith_01_zug.ink
INCLUDE eibenreith_02_bahnhof.ink
INCLUDE eibenreith_03_graben.ink
INCLUDE eibenreith_04_dorf.ink
// -----------------------------------------------------------------------------
// GLOBAL STATE
// -----------------------------------------------------------------------------
VAR birth_class = "unset"
VAR title_part = ""
VAR given_names = ""
VAR common_name = ""
VAR surname = ""
VAR religion_stance = "unset"
VAR supernatural_belief = "unset"
VAR supernatural_senses = "unset"
VAR body_detail = "unset"
VAR hair_colour = "unset"
VAR hairstyle = "unset"
VAR complexion_detail = "unset"
VAR face_detail = "unset"
VAR outfit_detail = "unset"
VAR baggage_style = "unset"
VAR viktor_relation = "unset"
VAR tut_choice_intro = false
VAR tut_optional_intro = false
VAR tut_character_intro = false
VAR tut_dialog_intro = false
VAR tut_manners_intro = false
VAR tut_gated_intro = false
VAR lover = 0
VAR sapphic = 0
VAR detective = 0
VAR careless = 0
VAR eccentric = 0
VAR class_confidence = 0
VAR medium_reputation = 0
VAR court_loyalty = 0
VAR viktor_trust = 0
VAR viktor_suspicion = 0
VAR supernatural_exposure = 0
// -----------------------------------------------------------------------------
// GLOBAL FUNCTIONS
// -----------------------------------------------------------------------------
// Add global Ink functions here when needed.
// -----------------------------------------------------------------------------
// KNOT INDEX
// -----------------------------------------------------------------------------
// eibenreith_01_zug.ink
// intro_train
// train_compartment
// next_compartment_definition
// compartment_room
// compartment_letter
// look_out_window
// observe_viktor
// define_class_and_name
// choose_name_noble
// choose_surname_noble
// choose_name_middle
// choose_surname_middle
// choose_name_working
// choose_surname_working
// assemble_full_name
// define_religion_and_supernatural
// define_appearance
// first_viktor_exchange
// viktor_class_noble
// viktor_class_middle
// viktor_class_working
// viktor_mission_briefing
// eibenreith_02_bahnhof.ink
// railway_station
// station_platform_options
// station_baggage
// eibenreith_03_graben.ink
// coach_journey
// coach_road_options
// coach_after_road_options
// eibenreith_04_dorf.ink
// village_arrival_options
// village_exit_puzzle
// -----------------------------------------------------------------------------
// ENTRY POINT
// -----------------------------------------------------------------------------
-> intro_train
+985
View File
@@ -0,0 +1,985 @@
// ============================================================================
// EIBENREITH 01 ZUG
// ============================================================================
// Kapitel 01: Das Abteil / Der Zug.
//
// Neue Struktur:
// - Der Zug ist das erste begehbare Ambiente.
// - Das Abteil ist der zentrale Hub.
// - Der Weg zum Waschraum erklärt Traversal.
// - Charakterdefinition entsteht an Orten im Zug, nicht in einem linearen Weave.
// - Viktor kontrolliert die Papiere.
// - Stand und Name entstehen aus sozialer Form, nicht aus falscher Identität.
// - Sprache und Verhalten beeinflussen Reaktionen, sind aber keine Klasse.
// ============================================================================
// ============================================================================
// ENTRY
// ============================================================================
VAR lunch_order_text = ""
=== train_intro_start ===
~ companion_join(viktor)
~ loc_move_to(loc_train_compartment)
~ contact_sync()
#chapter[Das Abteil]
#music[Kaiserpunk Waltz.mp3](crossfade, loop, lead=8)
Der Zug hat Wien hinter sich gelassen, doch du hast Wien noch nicht hinter dir gelassen.
Es sitzt dir im Nacken, wie die Anspannung, die dein Auftrag mit sich bringt. Es klebt dir auf der Haut, wie der Kohlerauch des Bahnhofs, von dem aus du es verlassen hast. Es begleitet dich in den Schriftstücken, die aus der geöffneten Ledertasche am Fenstertischchen des Coupés ragen. Und es sitzt dir gegenüber, in der Form von Rittmeister Viktor Alois Nowak, der dich seit der Abreise noch kein einziges Mal direkt angesehen hat. Du spürst seine urteilenden Blicke trotzdem auf dir ruhen.
#gloss[Rittmeister](Kavalleriedienstgrad der k.u.k. Armee, etwa einem Hauptmann entsprechend.)
#gloss[Coupé](Abgeschlossenes Abteil der ersten Klasse. Polster, Gepäcknetz und das stille Versprechen, dass die Mitreisenden ausgewählt wurden.)
Für alle Fremden ist er nun dein Sekretär. Er öffnet Türen, trägt Gepäck, ordnet Papiere und sorgt dafür, dass eine Frau deines Standes nicht allein reist. Zivil gekleidet, korrekt genug, um nicht aufzufallen. Laut der Kabinettskanzlei Seiner Majestät ist er dafür verantwortlich, für deine Sicherheit während des Auftrages zu sorgen. Als er dir heute Morgen zugeteilt wurde, wirkte er nicht besonders erfreut über seine neuen Befehle.
#gloss[Kabinettskanzlei](Die Kanzlei für Angelegenheiten, die im Namen des Kaisers erledigt werden. Je offizieller das Schreiben, desto sorgfältiger meidet es den Namen des Verfassers.)
-> train_compartment
// ============================================================================
// EPISODE BUCKET
// ============================================================================
=== train_intro_episode_bucket ===
* {lacks(body_def)}
{loc(loc_train_clergy_corridor) || loc(loc_train_washroom_corridor)}
{not (loc(loc_train_clergy_corridor) && lacks(relig_def))}
[AUTO: Tunnelspiegelung] #auto(3)
-> train_corridor_tunnel_event ->
-> TURN
* {present(viktor)}
{loc(loc_train_dining_car)}
[__Prüfe Viktor__: „Beginnt ein Auftrag erst dort, wo man aussteigt?“]
„Beginnt ein Auftrag erst dort, wo man aussteigt, Herr Nowak?“
„Nur im Bericht“, sagt Viktor. „Menschen beginnen früher. Beim Packen. Beim Schweigen. Beim Entschluss, welche Frage man höflich nicht stellt.“
* * [__Prüfe__: „Dann begann meiner schon in Wien.“]
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
„Wahrscheinlich davor“, sagt er. „Wien bemerkt seine eigenen Anfänge selten.“
* * [__Wahre Form__: „Dann achten wir auf die fehlenden Fragen.“]
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
„Eine Gewohnheit, die in fremden Häusern selten schadet.“
--
-> TURN
* {present(viktor)}
{loc(loc_train_dining_car)}
[__Bemerke__: Wie rasch ein Tisch die Welt sortiert.]
Der Speisewagen braucht keinen Wappenrock, um Rang herzustellen: Der eine bestellt, der andere wartet ab; der Kellner lächelt, weil es Arbeit ist; Viktor beobachtet, weil es Dienst ist. Hohenreith wird dieselbe Kunst beherrschen, nur mit älteren Möbeln.
-> TURN
* {present(viktor)}
{train_compartment_bucket.examined_viktor_map}
{loc(loc_train_compartment) || loc(loc_train_dining_car)}
[__Prüfe Viktor__: „Ist alles in Ihrer Mappe für meine Augen bestimmt?“]
„Ihre Mappe ist sehr geordnet“, sagst du. „Ist alles darin für meine Augen bestimmt?“
„Nein.“
Die Antwort kommt rasch genug, um ehrlich zu sein.
{route_repeated(detective, 2):
„Sie wollten wissen, ob ich lüge“, sagt Viktor.
„Ich wollte wissen, ob Sie es merken.“
„Das ist nicht dasselbe?“
„Nein.“
~ rel_inc(viktor_insightful)
- else:
„Manche Ordnung besteht darin, Grenzen sichtbar zu lassen.“
}
-> TURN
* {present(viktor)}
{train_compartment_bucket.looked_from_train_window}
{loc(loc_train_compartment) || loc(loc_train_dining_car)}
[__Bemerke__: Dass Wien im Fenster länger bleibt.]
„Wien verschwindet langsamer, als der Fahrplan behauptet.“
Viktor folgt deinem Blick hinaus. „Städte tun das. Besonders die, die glauben, man sei ihnen noch Rechenschaft schuldig.“
Das ist zu persönlich für eine Reisebemerkung und zu allgemein, um ihn darauf festzulegen.
-> TURN
* {has((name_def, relig_def, body_def, face_def, belief_def))}
{state_reached(CourtMission.hidden_instruction_revealed)}
[__Warte__: Bis der Zug im Zielbahnhof einfährt.]
-> train_intro_end
-> DONE
=== train_companion_transition_bucket ===
{
- accompanied_by(viktor):
{
- traversal_between(loc_train_compartment, loc_train_home_corridor):
Viktor tritt hinter dir in den Gang und zieht die Abteiltür zu. Er bleibt einen halben Schritt zurück, gerade weit genug, dass seine Begleitung wie Form aussieht und nicht wie Bewachung.
- traversal_between(loc_train_home_corridor, loc_train_clergy_corridor):
Viktor folgt dir über die schwankende Verbindung. Eine Hand bleibt nahe an der Wand, nicht unsicher, eher bereit, den Zug oder dich aufzufangen, falls einer von euch den Takt verliert.
- traversal_between(loc_train_clergy_corridor, loc_train_home_corridor):
Viktor kommt hinter dir zurück über die Verbindung. Im ersten Wagen nimmt er sofort wieder jene Haltung an, die zwischen Dienst und Unauffälligkeit geübt worden ist.
- traversal_between(loc_train_clergy_corridor, loc_train_washroom_corridor):
Beim Übergang in den praktischeren Wagen senkt Viktor kurz den Blick auf den Spalt zwischen den Wagen. Dann ist er wieder hinter dir, als hätte sogar Vorsicht einen vorgeschriebenen Abstand.
- traversal_between(loc_train_washroom_corridor, loc_train_clergy_corridor):
Viktor folgt dir gegen die Fahrtrichtung zurück. Der Waschraum bleibt hinter euch, und mit ihm jener Teil der Reise, für den selbst ein Sekretär eine Tür zwischen sich und seine Pflicht setzen muss.
}
}
->->
// ============================================================================
// ROOM: COMPARTMENT
// ============================================================================
=== train_compartment ===
-> enter_room(loc_train_compartment, -> train_compartment_entry, -> train_compartment_look, -> train_compartment_exits, -> train_compartment_bucket) -> TURN
=== train_compartment_bucket ===
{
- tutorial(tut_choice_intro):
#alert[Links erscheinen Entscheidungen. Du kannst sie mit der Maus wählen oder mit der angezeigten Taste auslösen. Das hervorgehobene Wort beschreibt, was du versuchst. Kürzel wie L für Schaue oder X für Untersuche folgen klassischen Textadventure-Konventionen.]
}
+ {claim_choice_gate_if(return_auto, reunion(viktor) && state_between(freshen_up_started, freshen_up_done))}
[AUTO: Viktors Rückkehr nach unerledigtem Frischmachen] #auto
Viktor hebt den Blick. Du bist zu rasch zurück, um die Begründung erfüllt zu haben, mit der du gegangen bist.
„Das war ein sehr kurzer Augenblick“, sagt er.
Es ist kein Vorwurf. Noch nicht. Aber ein Vermerk.
~ rel_inc(viktor_closed)
-> TURN
+ {claim_choice_gate_if(return_auto, reunion(viktor) && state_reached(freshen_up_done))} [AUTO: Viktors Rückkehr nach Frischmachen] #auto
Viktor hebt den Blick, als du wieder eintrittst. Er bemerkt zuerst nicht dein Gesicht, sondern die Arbeit daran: glattere Nadeln, kühlere Hände, ein Blick, der wieder dort sitzt, wo andere ihn erwarten.
„Besser?“, fragt er.
Das Wort ist praktisch genug, um keine Sorge sein zu müssen, und aufmerksam genug, um keine bloße Höflichkeit zu sein.
~ rel_inc(viktor_reliable)
-> TURN
+ {claim_choice_gate_if(return_auto, reunion(viktor) && state_between(explore_train_started, explore_train_done))}
[AUTO: Viktors Rückkehr nach kurzer Erkundung] #auto
Viktor hebt den Blick und sieht nicht zu deinem Gesicht, sondern zu deinen Schuhen, als könne der Gang Staub genug verraten.
„Und?“, fragt er. „Reicht der Zug weiter, als er sollte?“
Noch nicht weit genug, um diese Frage zu verdienen.
~ rel_inc(viktor_insightful)
-> TURN
+ {claim_choice_gate_if(return_auto, reunion(viktor) && state_reached(explore_train_done))} [AUTO: Viktors Rückkehr nach Erkundung] #auto
Viktor hebt den Blick und sieht nicht zu deinem Gesicht, sondern zu deinen Schuhen, als könne der Gang Staub genug verraten.
„Und?“, fragt er. „Reicht der Zug weiter, als er sollte?“
Weit genug für einen Speisewagen. Weit genug für eine neue Möglichkeit.
~ rel_inc(viktor_insightful)
-> TURN
+ {claim_choice_gate_if(return_auto, reunion(viktor) && state_between(mirror_started, mirror_done))}
[AUTO: Viktors Rückkehr ohne Spiegel] #auto
Viktor hebt den Blick. Dein Hut sitzt wie zuvor, dein Gesicht auch.
„Der Spiegel war offenbar streng“, sagt er.
Das ist beinahe höflich. Beinahe.
~ rel_inc(viktor_closed)
-> TURN
+ {claim_choice_gate_if(return_auto, reunion(viktor) && state_reached(mirror_done))} [AUTO: Viktors Rückkehr nach Spiegel] #auto
Viktor hebt den Blick. Der Hut sitzt fester, die Nadeln besser, und dein Gesicht ist wieder die Fassung, in der Fremde es lesen sollen.
„Gut“, sagt er. Nicht schön, nicht besser. Gut. Ein dienstliches Urteil über eine gesellschaftliche Oberfläche.
~ rel_inc(viktor_reliable)
-> TURN
+ {claim_choice_gate_if(return_auto, reunion(viktor) && state_between(privacy_started, privacy_taken))}
[AUTO: Viktors Rückkehr ohne Augenblick allein] #auto
Viktor hebt den Blick. Du bist gegangen, um Aufsicht loszuwerden, und warst doch kaum lange genug fort, um sie wirklich abzuschütteln.
„Hat der Augenblick genügt?“
Er fragt es, als müsse die Antwort nicht laut werden.
~ rel_inc(viktor_insightful)
-> TURN
+ {claim_choice_gate_if(return_auto, reunion(viktor) && state_reached(privacy_taken))} [AUTO: Viktors Rückkehr nach privatem Augenblick] #auto
Viktor hebt den Blick. Für eine kleine Weile gehörte dein Gesicht nur dir. Das merkt er, und weil er nicht dumm ist, benennt er es nicht.
„Wir fahren noch“, sagt er nur.
~ rel_inc(viktor_open)
-> TURN
+ {claim_choice_gate_if(return_auto, reunion(viktor) && state_between(unwell_started, unwell_managed))}
[AUTO: Viktors Rückkehr nach Unwohlsein] #auto
Viktor hebt den Blick. Die Sorge kommt schneller als sein Misstrauen.
„Setzen Sie sich“, sagt er. „Langsam.“
Du bist kaum lange genug fort gewesen, um dich zu erholen. Vielleicht reicht es, dass er das nicht sofort gegen dich verwendet.
~ rel_inc(viktor_open)
-> TURN
+ {claim_choice_gate_if(return_auto, reunion(viktor) && state_reached(unwell_managed))} [AUTO: Viktors Rückkehr nach Erleichterung] #auto
Viktor hebt den Blick, prüft deinen Gang und lässt die Frage in der Mappe verschwinden, aus der sie nie ganz herauskam.
„Besser?“, fragt er.
Diesmal ist Sorge darin. Nicht viel. Genug.
~ rel_inc(viktor_open)
-> TURN
* {not class} [__Prüfe Viktor__: „Wie lange bis zum Umstieg?“]
„Wie lange bis zum Umstieg?“
Viktor zieht den Fahrplan aus der Mappe, obwohl er die Antwort vermutlich auswendig kennt. „Lang genug, um eine Sache zu erledigen, die sonst bei der Ankunft ungeschickt würde.“
Sein Blick fällt auf ein vorgedrucktes Blatt zwischen den Schriftstücken.
-> identity_papers_tunnel ->
-> TURN
* (examined_viktor_map) [__Untersuche__: Viktors Mappe. #key:x #optional]
{class && tutorial(tut_optional_intro):
#alert[Optionale Entscheidungen vertiefen Szene, Welt oder Haltung. Sie können wichtig sein, ohne allein den Weg zu versperren.]
}
Die Ledermappe enthält genau die Sorte Ordnung, die vorgibt, nur Ordnung zu sein. Fahrplan. Billets. Ein vorgedrucktes Personalblatt. Ein Kuvert mit Viktors Namen, ungeöffnet für dich. Und darunter die Abschrift des Schreibens aus Hohenreith, deren Rand Viktor mit zwei Fingern festhält, als gehöre selbst Papier zur Eskorte.
{not class:
-> identity_papers_tunnel ->
}
-> TURN
* (looked_from_train_window) [__Schaue__: Aus dem Fenster. #key:f #optional]
{class && tutorial(tut_optional_intro):
#alert[Optionale Entscheidungen vertiefen Szene, Welt oder Haltung. Sie können wichtig sein, ohne allein den Weg zu versperren.]
}
Draußen löst sich Wien nicht auf einmal, sondern ungern: Vorstädte, Gärten, Fabrikmauern, dann Felder, deren Braun noch nicht weiß, ob es Winter oder Frühling dienen soll. Telegraphenstangen gleiten vorbei, gleichmäßig und unerbittlich. Jede trägt eine Nachricht, die schneller reisen darf als eine Frau im Korsett. #gloss[Telegraphenstangen](Holzstangen der elektrischen Nachrichten. Die Monarchie liebt Drähte, weil sie Gerüchte schneller machen und zugleich wie Ordnung aussehen.)
{not class:
-> identity_papers_tunnel ->
}
-> TURN
* {present(viktor)} [__Betrachte__: Viktor. #key:v #optional]
{class && tutorial(tut_optional_intro):
#alert[Optionale Entscheidungen vertiefen Szene, Welt oder Haltung. Sie können wichtig sein, ohne allein den Weg zu versperren.]
}
Viktor trägt Zivil, aber nicht Entspannung: dunkler Gehrock, nüchterne Weste, tadelloser Kragen, dazu die Haltung eines Mannes, der selbst im Sitzen nie ganz außer Dienst ist. Kein Schneider der Monarchie kann Disziplin verbergen. Er kann sie nur angemessener aussehen lassen. #gloss[Gehrock](Langer Herrenrock für korrekte Tageskleidung. Ein Kleidungsstück, das Männern erlaubt, bürgerlich, amtlich und moralisch zugleich auszusehen.)
Seine Augen prüfen Tür, Fenster, Gepäcknetz, Korridor, dein Gesicht und wieder die Tür. Nicht gierig. Nicht unhöflich. Nur vollständig.
{not class:
-> identity_papers_tunnel ->
}
-> TURN
+ (asked_viktor_role) {has(class_def)}
{lacks(route_language_def)} [__Prüfe Viktor__: „Welche Aufgabe haben Sie wirklich, Herr Nowak?“]
-> viktor_role_dialogue ->
-> TURN
+ {state_reached(dining_car_seen)}
{meal(meal_unset)} [__Schlage Viktor vor__: „Wir könnten im Speisewagen essen.“]
-> dining_plan_dialogue ->
-> TURN
* (read_hohenreith_request) {has(class_def)}
{lacks(belief_def)} [__Verlange__: Zu sehen, weshalb du gerufen wurdest.]
~ state_reach(CourtMission.sealed_letter_known)
~ state_reach(CourtMission.official_cover_understood)
~ state_reach(CourtMission.household_affair_named)
~ state_reach(CourtMission.supernatural_pretext_named)
Viktor lässt den Vordruck trocknen, dann nimmt er ein zweites Blatt aus der Mappe. Nicht das Memorandum mit seinen knappen Amtswörtern, sondern eine Abschrift auf besserem Papier. Die Schrift wirkt, als habe jemand sehr ordentlich in Eile geschrieben.
„Die Bitte aus Hohenreith“, sagt er. „Nicht alles daran ist für eine Eisenbahnfahrt gedacht. Aber genug.“
> An die zuständigen Stellen wird in äußerster Diskretion das Ersuchen gerichtet, eine geeignete Person nach Jagdhaus Hohenreith zu entsenden. Im Haushalt und in dessen näherem Umfeld sind wiederholt Störungen vorgefallen, deren öffentliche Behandlung gegenwärtig weder ratsam noch erwünscht erscheint.
>
> Die Anwesenheit einer Dame von Bildung, Verschwiegenheit und bekannter Sensibilität für ungewöhnliche seelische oder spiritistische Erscheinungen wäre der Familie willkommen, sofern sie ohne Aufsehen, Polizei, Presse oder kirchliche Untersuchung erfolgen kann. #gloss[spiritistische Erscheinungen](Erscheinungen im Umkreis des Spiritismus. Sehr brauchbar, wenn Unheimliches behandelt werden soll, ohne zuzugeben, dass ein Amt an Geister glaubt.) #gloss[kirchliche Untersuchung](Prüfung durch geistliche Stellen. Besonders beruhigend, solange man sicher ist, dass der Schrecken der richtigen Art angehört.)
Niemand hat das Wort Geist geschrieben. Niemand hat das Wort Betrug geschrieben. Niemand benennt, wem im Haus geholfen werden soll. Gerade deshalb treten die Auslassungen hervor, wie Möbel um einen Fleck, den niemand ansehen will.
Nun bleibt die Frage, was du selbst für möglich hältst.
* * [__Glaube__: Dass die Toten seltener schweigen, als Lebende behaupten.]
~ belief = believer
~ route_inc(route_sapphic)
Du hältst den Unglauben gebildeter Leute für eine besonders eitle Form der Provinzialität. Es gibt Druck in Zimmern, in denen Kummer gewesen ist. Es gibt Worte, die Menschen sprechen, bevor sie wissen, dass sie gesprochen haben.
* * [__Prüfe__: Ob eine Erscheinung zuerst einen Nutzen hat.]
~ belief = sceptic
~ route_inc(route_detective)
Das Wort Geist verdeckt zu viel und erklärt zu wenig. Falls Hohenreith Gespenster hat, erwartest du von ihnen Fußspuren, Gelegenheiten und einen Nutznießer.
* * [__Täusche__: Mit jener Sensibilität, die andere von dir brauchen.]
~ belief = performer
~ route_inc(route_lover)
Du hast gelernt, dass Männer, die dem Verstand einer Frau misstrauen, manchmal ihre Nerven verehren. Eine Schlussfolgerung macht sie unruhig. Eine Vision macht sie aufmerksam.
* * [__Zögere__: Das Unsichtbare noch nicht zu sortieren.]
~ belief = unsure
~ route_inc(route_composure)
Es gibt Dinge, die du erklären kannst, Dinge, die du noch nicht erklären kannst, und Dinge, denen Erklärung schadet, wenn man sie zu früh verlangt. Vorläufigkeit ist manchmal die sauberste Methode.
-
~ mark(belief_def)
-> train_compartment
-> DONE
=== dining_plan_dialogue ===
„Wir könnten im Speisewagen essen.“
„Beim Umstieg“, sagt Viktor, „wird Zeit sein, wenn wir sie nicht verlieren. Speisewagen, Bahnhofsrestauration oder nur etwas Kleines im Abteil. Alles spart etwas und kostet etwas.“ #gloss[Bahnhofsrestauration](Gastwirtschaft am Bahnhof. Reisezeit wird dort zu Suppe, Kaffee, Gedränge und sehr genauer Beobachtung von Gepäck und Stand.)
* [__Wähle__: Jetzt mit Viktor in den Speisewagen zu gehen.]
~ meal_choose(dining_car)
~ companion_join(viktor)
Der Speisewagen ist kontrollierter als ein Bahnhof und öffentlicher als dieses Abteil. Man schaut dort mit Besteck in der Hand; das macht den Blick nicht freundlicher, nur gesellschaftsfähiger.
Viktor schließt die Mappe, steht auf und öffnet die Abteiltür. „Nach Ihnen.“
Von diesem Augenblick an folgt er dir. Nicht in den Waschraum, aber überall sonst, wo seine Anwesenheit aus Neugier eine gesellschaftliche Form machen kann.
-> train_home_corridor
* [__Wähle__: Am Bahnhof zu essen.]
~ meal_choose(station_restaurant)
Der Bahnhof ist lauter, unsauberer, ehrlicher. Man erfährt selten mehr über eine Ordnung, als wenn sie Suppe bestellt, Trinkgeld gibt und auf die Uhr sieht.
* [__Wähle__: Nur Tee, Gebäck und Ruhe zu verlangen.]
~ meal_choose(light_refreshment)
Du sparst Zeit, nicht Erschöpfung. Der Körper führt über solche Rechnungen eigene Bücher, und er ist selten nachsichtig.
-
->->
=== viktor_role_dialogue ===
~ state_reach(ViktorRelationFrame.escort_present)
~ state_reach(ViktorRelationFrame.secretary_cover_understood)
{tutorial(tut_dialog_intro):
#alert[Steht eine Entscheidung in Anführungszeichen, spricht Valerie diese Zeile aus. Das hervorgehobene Verb benennt die soziale Bewegung der Antwort.]
}
„Welche Aufgabe haben Sie wirklich, Herr Nowak?“
Viktor legt den Vordruck zurück in die Mappe. Du lässt ihm einen Augenblick, den Riemen zu schließen, und nimmst ihm dann die Bequemlichkeit, nur Sekretär zu sein.
* [__Wahre Form__: „Welche Zeile betrifft Sie, Herr Nowak?“]
„Welche Zeile betrifft Sie, Herr Nowak?“
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
~ rel_inc(viktor_closed)
Er sieht dich an, als habe er gehofft, du würdest höflicher ausweichen. „Auf dem Papier: Sekretär. In der Praxis: Begleitung.“
* [__Prüfe__: „Wer hat angeordnet, dass ich nicht allein reise?“]
„Wer hat angeordnet, dass ich nicht allein reise?“
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
~ rel_inc(viktor_bold)
„Die Stelle, die vermeiden möchte, dass diese Reise nach einer Anordnung aussieht.“
* [__Entwaffne__: „Soll ich Sie Sekretär nennen, damit wir beide uns wohler fühlen?“]
„Soll ich Sie Sekretär nennen, damit wir beide uns wohler fühlen?“
~ route_inc(route_lover)
~ rel_inc(viktor_open)
~ rel_inc(viktor_unreliable)
„Mich macht das Wort nicht wohler“, sagt er. „Aber es macht andere Leute weniger aufmerksam.“
* [__Schütze dich__: „Wessen Sicherheit meinen Sie, wenn Sie von meiner Begleitung sprechen?“]
„Wessen Sicherheit meinen Sie, wenn Sie von meiner Begleitung sprechen?“
~ route_inc(route_sapphic)
~ rel_inc(viktor_closed)
~ rel_inc(viktor_insightful)
Er antwortet nicht sofort. „Ihre. Die der Gastgeber. Und, falls die Berichte stimmen, die der Menschen, die nicht gefragt wurden.“
* [__Verplappere dich__: „Ich weiß nicht, ob ich einen Sekretär, einen Wächter oder einen Zeugen vor mir habe.“]
„Ich weiß nicht, ob ich einen Sekretär, einen Wächter oder einen Zeugen vor mir habe.“
~ route_inc(route_careless)
~ rel_inc(viktor_unreliable)
~ rel_inc(viktor_passive)
Etwas an seiner Aufmerksamkeit wird vorsichtiger. „Das ist immerhin näher an der Wahrheit als Sekretär.“
* [__Benenne__: „Sie reisen mit, damit Wien später sagen kann, es habe aufgepasst.“]
„Sie reisen mit, damit Wien später sagen kann, es habe aufgepasst.“
~ route_inc(route_eccentric)
~ rel_inc(viktor_bold)
~ rel_inc(viktor_adversarial)
„Wien sagt vieles später“, sagt Viktor. „Meistens mit saubereren Händen als vorher.“
-
~ mark(route_language_def)
~ state_reach(ValerieWorkingMask.social_strategy_established)
-> briefing
= briefing
~ state_reach(ViktorRelationFrame.handler_role_understood)
Viktor öffnet die Mappe und nimmt ein Memorandum heraus. Diesmal behält er es nicht bei sich, sondern legt es so vor dich, dass du lesen kannst. #gloss[Memorandum](Amtliche Denkschrift. Lang genug, um Zuständigkeit zu behaupten, kurz genug, um gefährliche Dinge nicht beim Namen nennen zu müssen.)
„Beim Umstieg erwartet uns eine Kutsche aus Hohenreith“, sagt er. „Ihren Gastgebern wurde mitgeteilt, ich sei Ihnen bei Korrespondenz, Reiseangelegenheiten und praktischen Vorkehrungen behilflich. Mehr müssen sie vorerst nicht wissen.“ #gloss[Korrespondenz](Briefwechsel. Die vornehme Kunst, Absichten so lange zu falten, bis sie in ein Kuvert passen.)
* [__Präzisiere__: „Was wissen sie, was vermuten sie, und was soll ich prüfen dürfen?“]
„Was wissen sie, was vermuten sie, und was soll ich prüfen dürfen?“
~ route_inc(route_detective)
~ rel_inc(viktor_reliable)
„Sie wissen, dass Sie empfohlen kommen. Sie vermuten, dass Sie Störungen ohne Polizei, Priester oder Presse beilegen könnten. Ihnen ist gestattet, Betrug, Zwang, Gefährdung der öffentlichen Ordnung oder glaubwürdige, derzeit nicht einzuordnende Erscheinungen zu prüfen.“
* [__Spotte__: „Wie fürsorglich. Der Staat erspart ihnen die Wörter.“]
„Wie fürsorglich. Der Staat erspart ihnen die Wörter.“
~ route_inc(route_eccentric)
~ rel_inc(viktor_adversarial)
„Der Staat erspart Unruhe, wenn er kann“, sagt Viktor. „Oder verteilt sie wenigstens an die richtigen Personen.“
* [__Wahre Form__: „Die Familie bekommt eine Dame. Die Akten bekommen eine Konsultation. Sie bekommen Spielraum.“]
„Die Familie bekommt eine Dame. Die Akten bekommen eine Konsultation. Sie bekommen Spielraum.“
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
„Eine Zusammenfassung, die ich nicht unterschreiben würde. Aber ich würde ihr nicht widersprechen.“
-
~ state_reach(CourtMission.household_affair_named)
~ state_reach(CourtMission.supernatural_pretext_named)
Das Memorandum ist nicht lang. Es nennt nur, was für die Reise nötig ist.
Ein gräflicher Haushalt. Ein Jagdhaus in der Obersteiermark, nicht der Hauptsitz der Familie. Berichte über Störungen unter Dienerschaft und Dorfbewohnern. Kein Einschreiten der Polizei erbeten. Keine öffentliche kirchliche Untersuchung erwünscht. Keine Presse. Deine Anwesenheit ist als diskrete Konsultation auf Wunsch der Familie zu erklären. Herr Nowak dient zur Unterstützung praktischer Angelegenheiten. #gloss[Jagdhaus](Adeliger Landsitz für Jagden und kurze Aufenthalte. Weniger Hauptsitz als Bühne für Gäste, Förster, Gewehre und Geheimnisse.) #gloss[Obersteiermark](Der gebirgige Norden der Steiermark. Wälder, Eisen, enge Täler und ein Wetter, das sich nicht für Wiener Empfindlichkeiten interessiert.) #gloss[Dienerschaft](Die Bediensteten eines Hauses. Offiziell Teil der Ordnung, praktisch ihr Gedächtnis.)
* [__Entlarve__: „Das ist nicht die ganze Weisung.“]
„Das ist nicht die ganze Weisung.“
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
Viktor fragt nicht, woher du es weißt. „Es gibt immer noch eine weitere Weisung.“
* [__Benenne__: „Wien vertraut uns beiden so wenig, dass es Misstrauen aufteilen musste.“]
„Wien vertraut uns beiden so wenig, dass es Misstrauen aufteilen musste.“
~ route_inc(route_eccentric)
~ rel_inc(viktor_adversarial)
Viktor fragt nicht, woher du es weißt. „Es gibt immer noch eine weitere Weisung.“
* [__Zügle dich__: „Dann behalten Sie sie. Ich werde merken, wann sie zwischen uns steht.“]
„Dann behalten Sie sie. Ich werde merken, wann sie zwischen uns steht.“
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
„Das halte ich für wahrscheinlich.“
-
~ state_reach(CourtMission.hidden_instruction_revealed)
~ state_reach(ViktorRelationFrame.skepticism_registered)
->->
=== train_compartment_entry ===
Erste Klasse bedeutet: grüne Polster, Messinggriffe und genug Platz, um die Enge für Behaglichkeit auszugeben. Im Gepäcknetz über euren Köpfen verbringen deine Gepäckstücke und Viktors einzelner Koffer die Reise in aufgezwungener Nachbarschaft. Der Zug trägt euch mit einem Rhythmus, den man nach einer Weile aufhört zu hören und nur noch unter den Sohlen spürt. #gloss[Gepäcknetz](Ablage über den Sitzen des Eisenbahnabteils. Dort reisen Hüte, Schachteln und alles, was zu leicht für den Koffer und zu wichtig für den Gepäckwagen ist.) #gloss[erste Klasse](Der teuerste Eisenbahnraum. Nicht unbedingt stiller, aber besser gepolstert gegen Zufall, Gedränge und fremde Körper.)
Das Fenstertischchen zieht den Blick auf sich. Viktors Ledertasche liegt dort, noch geöffnet, die Schriftstücke halb heraus.
Hinter dem Fenster zieht Österreich vorbei.
-> DONE
=== train_compartment_look ===
+ [__Schaue__: Im Abteil umher. #key:l]
Das Abteil hat sich nicht verändert, nur dein Verhältnis dazu: der Griff zur Tür, Viktors Mappe, das Fenster, der Platz neben dem Gepäcknetz, an dem ein Blick hängen bleiben kann, ohne als Unruhe zu gelten. Es ist ein kleiner Raum, der vorgibt, ein gesellschaftlicher Zustand zu sein.
{not class:
-> identity_papers_tunnel ->
}
-> TURN
-> DONE
=== train_compartment_exits ===
+ {lacks(intro_def)} [__Verlasse__: Das Abteil. #key:e]
-> train_depart_compartment
-> DONE
// ============================================================================
// TRAIN NAVIGATION / FREE TRAVERSAL
// ============================================================================
=== train_depart_compartment ===
{not class:
-> identity_papers_tunnel ->
}
{tutorial(tut_traversal_intro):
#alert[Der Zug ist begehbar. Raum-Entscheidungen bewegen Valerie zwischen erreichbaren Bereichen; Moment-Entscheidungen untersuchen Dinge, sprechen Personen an oder lassen Ereignisse sichtbar werden.]
}
Viktor sitzt noch immer dort, wo die Form ihn hingestellt hat: nah genug, um nützlich zu sein, zu nah, um vergessen zu werden. Draußen schwankt der Gang. Drinnen schwankt nur, was nicht ausgesprochen wird.
+ [__Wahre Form__: „Ich werde mich einen Augenblick frisch machen.“]
„Ich werde mich einen Augenblick frisch machen.“
~ state_reach(freshen_up_started)
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
~ rel_inc(viktor_closed)
Viktor neigt den Kopf. „Natürlich. Nehmen Sie sich den Augenblick.“
-> to_corridor
+ [__Prüfe__: „Ich möchte wissen, wie weit dieser Wagen reicht.“]
„Ich möchte wissen, wie weit dieser Wagen reicht.“
~ state_reach(explore_train_started)
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
~ rel_inc(viktor_bold)
„Ein Zug reicht selten nur räumlich“, sagt Viktor. Er hält dich nicht auf.
-> to_corridor
+ [__Entwaffne__: „Verzeihen Sie. Ich traue mir einen Spiegel ohne amtliche Hilfe zu.“]
„Verzeihen Sie. Ich traue mir einen Spiegel ohne amtliche Hilfe zu.“
~ state_reach(mirror_started)
~ route_inc(route_lover)
~ rel_inc(viktor_open)
~ rel_inc(viktor_open)
Etwas an seinem Mundwinkel bewegt sich. „Ich werde die Monarchie nicht beunruhigen.“
-> to_corridor
+ [__Schütze dich__: „Ich brauche einen Augenblick ohne Aufsicht.“]
„Ich brauche einen Augenblick ohne Aufsicht.“
~ state_reach(privacy_started)
~ route_inc(route_sapphic)
~ rel_inc(viktor_closed)
~ rel_inc(viktor_unreliable)
Viktor sieht zur Tür, nicht zu dir. „Dann nehmen Sie ihn. Aber verlieren Sie ihn nicht.“
-> to_corridor
+ [__Verplappere dich__: „Mir ist zu warm. Oder zu eng. Ich weiß nicht genau.“]
„Mir ist zu warm. Oder zu eng. Ich weiß nicht genau.“
~ state_reach(unwell_started)
~ route_inc(route_careless)
~ rel_inc(viktor_unreliable)
~ rel_inc(viktor_unreliable)
„Langsam“, sagt Viktor, sofort und nicht scharf. „Der Gang schwankt.“
-> to_corridor
+ [__Benenne__: Aufstehen, ohne um Erlaubnis zu bitten.]
~ route_inc(route_eccentric)
~ rel_inc(viktor_adversarial)
~ rel_inc(viktor_bold)
Du stehst auf. Nicht hastig, nicht trotzig; nur so, als sei dein Körper keine Akte, die Viktor gegenzeichnen muss.
Viktor erhebt sich halb. „Fräulein.“ Das Wort ist kein Gruß. „Wohin?“
-> silent_challenge
- (silent_challenge)
+ [__Wahre Form__: „Zum Waschraum, Herr Nowak. Nicht aus der Monarchie.“]
„Zum Waschraum, Herr Nowak. Nicht aus der Monarchie.“
~ state_reach(freshen_up_started)
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
Er setzt sich wieder. „Dann will ich die Monarchie beruhigt wissen.“
-> to_corridor
+ [__Trotze__: „Dorthin, wo Ihre Augen nicht zuerst ankommen.“]
„Dorthin, wo Ihre Augen nicht zuerst ankommen.“
~ state_reach(privacy_started)
~ route_inc(route_eccentric)
~ rel_inc(viktor_adversarial)
~ rel_inc(viktor_unreliable)
Für einen Augenblick wird er sehr still. Dann macht er den Weg frei.
-> to_corridor
- (to_corridor)
Du öffnest die Abteiltür. Der Griff ist kühler, als Messing sein sollte. Dahinter schwankt der schmale Gang des ersten Wagens in Fahrtrichtung.
~ companion_leave(viktor)
~ state_reach_if_started(privacy_taken)
-> train_home_corridor
-> DONE
// ============================================================================
// ROOM: HOME CORRIDOR
// ============================================================================
=== train_home_corridor ===
-> enter_room(loc_train_home_corridor, -> train_home_corridor_entry, -> train_home_corridor_look, -> train_home_corridor_exits, -> train_home_corridor_bucket) -> TURN
=== train_home_corridor_bucket ===
* [__Lausche__: An den Abteiltüren.]
Hinter den Türen liegt keine einzelne Geschichte, sondern eine Sammlung höflicher Verschlüsse. Ein Husten, das Rascheln einer Zeitung, eine Frauenstimme, die mitten im Satz leiser wird. Erste Klasse bedeutet nicht, dass Menschen weniger neugierig sind. Nur, dass sie dafür bessere Türen haben.
-> TURN
* [__Prüfe__: Die Messinggriffe.]
Die Griffe sind poliert genug, um Verantwortung vorzutäuschen. Jede Hand am Gang benutzt sie anders: Diener rasch, Herren selbstverständlich, Damen mit jener kleinen Vorsicht, die Kleidung und Gleichgewicht zugleich bedenkt.
-> TURN
-> DONE
=== train_home_corridor_entry ===
Der Gang des ersten Wagens ist schmaler, als er durch die Scheibe wirkte. Links die Abteiltüren, rechts die Fenster, dazwischen Messinggriffe für Würde in Bewegung. Hinter einer Tür wartet Viktor; hinter den anderen reisen Husten, Parfüm, Papier und das beleidigte Schweigen von Menschen, die sich einander teuer vom Leib halten.
-> DONE
=== train_home_corridor_look ===
+ [__Schaue__: Den Gang des ersten Wagens entlang. #key:l]
Der Gang ist nicht länger neu, aber seine Enge arbeitet weiter. Gegen die Fahrtrichtung liegt eine Tür, die nicht zu deiner Fahrt gehört; in Fahrtrichtung wartet der Übergang zum nächsten Wagen. Dein Abteil ist die einzige seitliche Tür, die jetzt wirklich dein Ort ist.
-> TURN
-> DONE
=== train_home_corridor_exits ===
+ [__Betrete__: Dein Abteil. #key:w]
Du öffnest die seitliche Tür und trittst zurück in den kleinen Raum aus Polster, Papier und Viktors Aufmerksamkeit.
-> train_compartment
+ [__Gehe__: In Fahrtrichtung zum nächsten Wagen. #key:s]
Du gehst in Fahrtrichtung bis zur Übergangstür. Für einen Atemzug greifen Lärm, Kälte und Kohlenrauch nach Rock und Hut; dann nimmt dich der nächste Wagen auf.
-> train_clergy_corridor
* [__Prüfe__: Die Tür gegen die Fahrtrichtung. #key:n]
-> train_second_class_door
-> DONE
=== train_second_class_door ===
Die Tür ist nicht verschlossen wie ein Tresor. Sie ist verschlossen wie eine soziale Gewissheit. Durch die Scheibe erkennst du nicht viel: engeres Holz, mehr Körper, andere Hüte, eine Luft, die weniger Abstand zwischen Menschen erlaubt. Du legst die Hand an den Griff und lässt sie wieder sinken. Neugier ist kein ausreichender Anlass, ohne Einladung durch fremde Klassen zu gehen.
-> TURN
// ============================================================================
// ROOM: CLERGY CORRIDOR
// ============================================================================
=== train_clergy_corridor ===
-> enter_room(loc_train_clergy_corridor, -> train_clergy_corridor_entry, -> train_clergy_corridor_look, -> train_clergy_corridor_exits, -> train_clergy_corridor_bucket) -> TURN
=== train_clergy_corridor_bucket ===
* {lacks(relig_def)} [AUTO: Priesterbegegnung] #auto
-> clergy_religion_tunnel ->
-> TURN
* [__Lies__: Die Wagenanschrift.]
An der Innenseite der Übergangstür steht eine kleine Anschrift mit Wagennummer, Klasse und Rauchverbot, als könne Tinte das Benehmen von Reisenden zuverlässiger ordnen als Menschen.
-> TURN
* [__Beobachte__: Den Gang während einer Kurve.]
Als der Zug in die Kurve geht, verrät jeder Körper kurz seine wahre Ausbildung. Ein Herr greift zu spät nach dem Riemen, eine ältere Dame gar nicht, und du spürst in den Knien, wie sehr Würde von Vorausberechnung abhängt.
-> TURN
-> DONE
=== train_clergy_corridor_entry ===
Im nächsten Wagen riecht der Gang stärker nach Kohle, feuchter Wolle und kalter Luft, die bei jedem Übergang hereingebeten wird. Hinter den Abteiltüren liegen Stimmen, Gepäck, Müdigkeit und das geübte Schweigen von Reisenden, die einander höflich nicht zur Kenntnis nehmen.
-> DONE
=== train_clergy_corridor_look ===
+ [__Schaue__: Den zweiten Gang entlang. #key:l]
Der Wagen wirkt gewöhnlicher als der erste, aber nicht freier. Gegen die Fahrtrichtung liegt dein eigener Wagen. In Fahrtrichtung wird der Zug praktischer: härterer Boden, weniger Polster, ein Schild zum Waschraum.
-> TURN
-> DONE
=== train_clergy_corridor_exits ===
+ [__Gehe__: Gegen die Fahrtrichtung zurück. #key:n]
Du trittst über die unruhige Verbindung zurück. Lärm und Kälte schließen sich hinter dir; der erste Korridor empfängt dich wieder mit Messinggriffen, Polstergeräuschen und der Nähe deines Abteils.
-> train_home_corridor
+ [__Gehe__: In Fahrtrichtung weiter. #key:s]
Du gehst in Fahrtrichtung weiter. Der Gang wird enger, sachlicher; vorn hängt ein Schild zum Waschraum.
-> train_washroom_corridor
-> DONE
// ============================================================================
// ROOM: WASHROOM CORRIDOR
// ============================================================================
=== train_washroom_corridor ===
-> enter_room(loc_train_washroom_corridor, -> train_washroom_corridor_entry, -> train_washroom_corridor_look, -> train_washroom_corridor_exits, -> train_washroom_corridor_bucket) -> TURN
=== train_washroom_corridor_bucket ===
* [__Lies__: Das Schild zum Waschraum.]
Das Schild ist klein, emailliert und sachlich. Es verspricht nichts als Wasser, Spiegel und Verriegelung. Gerade deshalb wirkt es in diesem Zug beinahe intim.
-> TURN
-> DONE
=== train_washroom_corridor_entry ===
Der dritte Wagen ist praktischer gebaut. Türen stehen enger, der Boden antwortet härter auf jeden Ruck, und ein Schild weist zum Waschraum. Hier gibt der Zug weniger vor, ein Salon zu sein. Er wird Apparat.
-> DONE
=== train_washroom_corridor_look ===
+ [__Schaue__: Den praktischen Wagen entlang. #key:l]
Gegen die Fahrtrichtung liegen der zweite Wagen, der erste Wagen und Viktor. Seitlich wartet der Waschraum mit seinem kleinen Spiegelversprechen. In Fahrtrichtung schließt eine Tür den nächsten Wagen ab; durch ihr Glas blitzt Weiß von Tischtüchern.
-> TURN
-> DONE
=== train_washroom_corridor_exits ===
+ [__Gehe__: Gegen die Fahrtrichtung zurück. #key:n]
Du lässt das Schild zum Waschraum hinter dir und gehst gegen die Fahrtrichtung zurück in den zweiten Wagen.
-> train_clergy_corridor
+ [__Betrete__: Den Waschraum. #key:e]
Du öffnest die schmale Tür zur Seite. Der Gang bleibt hinter dir zurück; vor dir wartet ein Raum, der kaum mehr als Spiegel, Wasser und Verriegelung ist.
~ state_reach_if_started(unwell_managed)
{accompanied_by(viktor):
Viktor bleibt im Gang zurück. Nicht weit genug, um wirklich abwesend zu sein; weit genug, damit die Tür einen Sinn behält.
~ companion_leave(viktor)
~ character_move_to(viktor, loc_train_washroom_corridor)
}
-> train_washroom
+ [__Öffne__: Die Tür in Fahrtrichtung. #key:s]
-> train_dining_car_transition
-> DONE
// ============================================================================
// ROOM: DINING CAR
// ============================================================================
=== train_dining_car_transition ===
{
- state_before(dining_car_seen):
~ state_reach(dining_car_seen)
~ state_reach_if_started(explore_train_done)
Du öffnest die Tür in Fahrtrichtung nur weit genug, um hineinzusehen. Dahinter liegt der Speisewagen: weiße Tücher, Glas, Besteck, Kellner mit ruhigen Händen. Allein weiterzugehen wäre auffällig; mit Viktor wäre es eine Mahlzeit.
}
{
- not present(viktor):
Der Speisewagen ist kein Raum, den man zufällig betritt. Man erscheint dort, und dieses Erscheinen braucht eine Begründung. Ohne Viktor wäre es Neugier. Mit ihm könnte es Mittagessen sein.
-> TURN
- else:
{loc(loc_train_compartment):
Ihr geht in Fahrtrichtung durch den ersten Korridor, über die schwankenden Verbindungen, vorbei an Abteiltüren, Waschraumschild und blanken Griffen. Der Speisewagen wartet nicht, aber er nimmt euch auf, als hätte er euch erwartet.
- else:
Viktor öffnet die Tür in Fahrtrichtung für dich. Aus der Grenze wird ein Auftritt: Tischtücher, Glas, Kellnerhände und der kurze prüfende Blick jener Reisenden, die ihr Essen für Privatheit halten.
}
-> train_dining_car
}
=== train_dining_car ===
-> enter_room(loc_train_dining_car, -> train_dining_car_entry, -> train_dining_car_look, -> train_dining_car_exits, -> train_dining_car_bucket) -> TURN
=== train_dining_car_bucket ===
+ {timer_due_if(train_lunch_order, state_between(lunch_ordered, lunch_served))}
[AUTO: Der Kellner bringt die Bestellung] #auto
Der Kellner kommt mit der Sicherheit eines Mannes, der gelernt hat, Suppe, Braten und gesellschaftliche Ungeduld gleichzeitig zu balancieren. Er stellt {lunch_order_text} vor dich hin, fragt nicht, ob du noch etwas wünschst, und verschwindet, bevor Höflichkeit Arbeit werden kann.
~ state_reach(lunch_served)
-> TURN
* {state_before(lunch_ordered)} [__Lies__: Die kleine Speisekarte.]
-> dining_menu_dialogue ->
-> TURN
+ {state_between(lunch_ordered, lunch_served)}
[__Warte__: Auf die Bestellung.]
Du lässt die Gespräche, das Glas und das Schaukeln des Wagens für einen Augenblick arbeiten. Der Kellner versteht diese Art von Warten.
Einen Atemzug später bringt er {lunch_order_text}, als hätte er nur darauf gewartet, dass deine Geduld offiziell wird.
~ timer_claim(train_lunch_order)
~ state_reach(lunch_served)
-> TURN
+ {state_between(lunch_served, lunch_first_bite)}
[__Iss__: Den ersten Bissen.]
Der erste Bissen ist vor allem eine Rückkehr in den Körper. Wärme, Salz, Fett, die kleine Erleichterung, dass selbst ein Auftrag nicht jedes Bedürfnis in Bedeutung verwandeln kann.
~ state_reach(lunch_first_bite)
-> TURN
+ {state_between(lunch_first_bite, lunch_second_bite)} [__Iss__: Weiter.]
Der zweite Bissen macht aus Probe eine Mahlzeit. Viktor isst mit der Disziplin eines Mannes, der gelernt hat, sogar Hunger dienstlich erscheinen zu lassen.
~ state_reach(lunch_second_bite)
-> TURN
+ {state_between(lunch_second_bite, lunch_finished)} [__Iss__: Auf.]
Du isst den Rest nicht hastig, aber ohne falsche Zier. Als der Teller leer ist, bleibt auf dem Tischtuch nur die Ordnung zurück, die Kellner später wiederherstellen werden.
~ state_reach(lunch_finished)
-> TURN
* [__Beobachte__: Die Kellner im schwankenden Wagen.]
Die Kellner bewegen sich mit einer Art unauffälligem Heldentum. Ein Glas kippt nicht, ein Teller findet die Tischkante nicht, ein Lächeln bleibt an seinem Platz. Das alles sieht nach Dienst aus und ist in Wahrheit Akrobatik in gestärkter Wäsche.
-> TURN
+ {present(viktor)} [__Prüfe Viktor__: „Wer sieht uns an?“ #key:x]
„Wer sieht uns an?“, fragst du, während ein Kellner am Nebentisch ein Glas abstellt, ohne es klirren zu lassen.
Viktor nimmt das Messer auf, als sei auch Besteck eine Gelegenheit zur Tarnung. „Der Kellner, weil er muss. Der Herr am zweiten Tisch, weil Sie nicht hierher passen wollen. Die ältere Dame am Fenster, weil sie hofft, dass Sie es doch tun.“
* * [__Prüfe__: „Und Sie?“]
„Und Sie?“
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
„Ich sehe nach Ausgängen“, sagt er. „Das ist weniger poetisch, aber zuverlässiger.“
* * [__Entwaffne__: „Wie schade. Ich hoffte, Sie hätten wenigstens Hunger.“]
„Wie schade. Ich hoffte, Sie hätten wenigstens Hunger.“
~ route_inc(route_lover)
~ rel_inc(viktor_open)
Er sieht auf den Teller. „Hunger lässt sich besser verbergen als Sorge.“
* * [__Wahre Form__: „Dann essen wir, bevor die Beobachtung auffällt.“]
„Dann essen wir, bevor die Beobachtung auffällt.“
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
„Eine zivile Taktik“, sagt er. „Ich billige sie.“
-
-> TURN
+ {present(viktor)}
{state_reached(CourtMission.supernatural_pretext_named)} [__Nutze__: Das Klirren des Geschirrs als Deckung.]
Das Essen gibt dem Gespräch Deckung. Eine Frage kann unter Porzellan verschwinden, eine Antwort unter dem Ruck der Kupplung.
* * [__Präzisiere__: „Warum keine Polizei?“]
„Warum keine Polizei?“
~ route_inc(route_detective)
~ rel_inc(viktor_reliable)
„Weil Polizei Öffentlichkeit erzeugt. Und weil manche Familien lieber gefährdet sind als lächerlich.“
* * [__Benenne__: „Eine Familie, die Geister bestellt, fürchtet Lebende.“]
„Eine Familie, die Geister bestellt, fürchtet Lebende.“
~ route_inc(route_eccentric)
~ rel_inc(viktor_insightful)
Viktor hebt den Blick. „Oder sie hat gelernt, dass Lebende sich besser hinter Geistern verstecken.“
* * [__Schütze dich__: „Und wenn man dort vor allem mich prüfen will?“]
„Und wenn man dort vor allem mich prüfen will?“
~ route_inc(route_sapphic)
~ rel_inc(viktor_unreliable)
„Dann prüfen Sie zurück“, sagt er. „Höflich, wenn möglich. Schnell, wenn nötig.“
-
-> TURN
-> DONE
=== dining_menu_dialogue ===
Die Karte ist auf dickem Papier gedruckt und behandelt Suppe, Braten, Kaffee und Gebäck mit jener Sicherheit, die nur Dinge besitzen, deren Preise bereits entschieden sind. Selbst Hunger wird hier in Reihenfolge gebracht.
* [__Bestelle__: Rindsuppe, Kalbsbraten und Kaffee.]
~ lunch_order_text = "Rindsuppe, Kalbsbraten und Kaffee"
~ state_reach(lunch_ordered)
~ timer_start(train_lunch_order, 3)
Du nennst Suppe, Braten und Kaffee. Der Kellner schreibt nichts auf. Er merkt es sich, als wäre Gedächtnis ein Teil der Uniform.
* [__Bestelle__: Forelle, Erdäpfel und Tee.]
~ lunch_order_text = "Forelle, Erdäpfel und Tee"
~ state_reach(lunch_ordered)
~ timer_start(train_lunch_order, 3)
Du wählst Fisch, Erdäpfel und Tee. Viktor hebt kaum merklich eine Braue, als habe er diese Entscheidung bereits in eine Akte über praktische Vernunft gelegt.
* [__Bestelle__: Klare Suppe, Gebäck und schwarzen Kaffee.]
~ lunch_order_text = "klare Suppe, Gebäck und schwarzen Kaffee"
~ state_reach(lunch_ordered)
~ timer_start(train_lunch_order, 3)
Du bestellst leicht, aber nicht entschuldigend. Der Kellner nickt. Auch Zurückhaltung hat in der ersten Klasse eine Form.
-
->->
=== train_dining_car_entry ===
Der Speisewagen ist schmaler Luxus in Bewegung: Tische mit zu weißen Tüchern, Metall, Glas, das helle Klirren von Geschirr und Kellner, die Balance nicht als Kunst, sondern als Beruf gelernt haben. Viktor zieht einen Stuhl für dich zurück. Für alle anderen sieht es nach Begleitung aus. Für dich fühlt es sich an wie ein anderer Tisch, an dem dieselben Fragen Platz nehmen. #gloss[Speisewagen](Eisenbahnwagen mit Bewirtung. Ein Ort, an dem Reisezeit in Mahlzeit verwandelt wird und Standesunterschiede trotzdem mit am Tisch sitzen.)
-> DONE
=== train_dining_car_look ===
+ [__Schaue__: Durch den Speisewagen. #key:l]
Die weißen Tücher sind weniger Verheißung als Arbeitsfläche. Besteck, Gläser, Kellner, fremde Reisende, Viktor gegenüber: Der Raum hält Gesellschaft und Mechanik auf einem schmalen Gleis zusammen. Jeder Bissen hat Zeugen.
-> TURN
-> DONE
=== train_dining_car_exits ===
+ {present(viktor)}
{state_reached(lunch_first_bite)} [__Verlasse__: Den Speisewagen. #key:n]
Viktor bezahlt, bevor aus deinem Aufbruch eine Verhandlung mit dem Kellner werden kann. Dann hält er dir die Tür gegen die Fahrtrichtung auf.
„Nach Ihnen.“
Aus Mittagessen wird wieder Begleitung. Hinter euch bleibt das Tischtuch, vor euch der praktische Wagen mit Waschraumschild, harten Böden und der Frage, wohin du als Nächstes willst.
~ companion_join(viktor)
-> train_washroom_corridor
-> DONE
// ============================================================================
// ROOM: WASHROOM
// ============================================================================
=== train_washroom ===
-> enter_room(loc_train_washroom, -> train_washroom_entry, -> train_washroom_look, -> train_washroom_exits, -> train_washroom_bucket) -> TURN
=== train_washroom_bucket ===
* {lacks(face_def)} [AUTO: Spiegelbild im Waschraum] #auto
-> washroom_mirror_character_generator
* {lacks(washroom_toilet_used)} [__Benutze__: Die Toilette.]
~ mark(washroom_toilet_used)
Der Zug schwankt, die Tür ist verriegelt, und die Einrichtung ist so nüchtern, dass selbst Scham darin praktisch werden muss. Einen Augenblick lang gibt es keine Kabinettskanzlei, keinen Rittmeister, kein fremdes Haus. Nur Körper, Reise und die Erleichterung, dass beides nicht vollständig gesellschaftlich verwaltet werden kann.
-> TURN
+ [__Wasche__: Die Hände.]
Kaltes Wasser läuft über deine Finger und nimmt Kohlerauch, Papierstaub und die feuchte Wärme der Handschuhe nicht ganz fort, aber genug, dass du dich wieder genauer anfühlst.
~ state_reach_if_started(freshen_up_done)
-> TURN
* [__Prüfe__: Den Riegel.]
Der Riegel ist dünn, aber entschieden. In einem Zug voller Türen ist dies die einzige, deren Zweck nicht Höflichkeit ist, sondern Ausschluss.
-> TURN
-> DONE
=== train_washroom_entry ===
Der Waschraum ist eng, metallisch und beleidigend praktisch. Wasser, Spiegel, Haken, Becken, ein Riegel, der zu dünn wirkt, um die Welt draußen aufzuhalten. Endlich ist Viktor nicht im Raum. Dafür bist du es.
Du ziehst die Handschuhe aus. Die Hände darunter sind feucht und gerötet. Eine Dame macht sich nicht nur frisch. Sie stellt die Oberfläche wieder her, an der andere ihre Urteile befestigen.
-> DONE
=== train_washroom_look ===
+ [__Schaue__: Im Waschraum umher. #key:l]
Der Raum ist noch immer zu klein für die Menge Welt, die er draußen halten soll. Wasser, Haken, Becken, Spiegel. Vor allem der Spiegel bleibt nützlich und unverschämt.
-> TURN
-> DONE
=== train_washroom_exits ===
+ [__Verlasse__: Den Waschraum. #key:w]
Du ziehst den Riegel zurück und trittst seitlich wieder hinaus in den praktischen Wagen mit seinem harten Boden und dem Schild, das nun hinter dir liegt.
{viktor_location == loc_train_washroom_corridor:
Viktor wartet im Gang. Als du wieder hinaustrittst, richtet er sich auf, als habe er nicht gewartet, sondern nur zufällig dort gestanden.
~ companion_join(viktor)
}
-> train_washroom_corridor
-> DONE
// ============================================================================
// CHAPTER EXIT
// ============================================================================
=== train_intro_end ===
~ mark(intro_def)
~ episode_end("normal")
Der Zug beginnt langsamer zu werden. Der Rhythmus verändert sich zuerst im Boden, dann im Fenster, dann im Körper. Häuser sammeln sich neben der Strecke; ein Stationsdach erscheint zwischen Rauch und den dunklen Kämmen bewaldeter Hänge. #sfx[steam-whistle.ogg]
Viktor legt das Memorandum zurück in die Mappe. „Ab jetzt“, sagt er, „reisen Blicke schneller als wir.“
Du richtest die Handschuhe.
-> advance_to_slot(noon)
+355
View File
@@ -0,0 +1,355 @@
// ============================================================================
// EIBENREITH 02 BAHNHOF
// ============================================================================
// Kapitel 02: Mittag / Bahnhof und Umstieg.
//
// Architektur:
// - episode start/end + episode bucket
// - Räume mit entry, look, exits, bucket
// - Interaktionen als konditionierte Weaves in Buckets
// ============================================================================
// ============================================================================
// EPISODE DEFINITION
// ============================================================================
=== railway_station ===
-> station_midday
=== station_midday ===
~ state_reach(meal_plan_chosen)
~ companion_join(viktor)
~ loc_move_to(loc_station_platform)
~ contact_sync()
Die Station ist klein genug, dass der Zug kurz verlegen wirkt, als er dort hält. #chapter[Der Bahnhof] #image[muerzzuschlag.png](portrait)
Dampf hängt unter dem Stationsdach. Ein Gepäckträger mit zu großer Kappe eilt über den Bahnsteig. Jenseits des Gebäudes stampft ein Kutschpferd im gefrorenen Schlamm. Der Ortsname steht auf einem Schild, sachlich und kaiserlich, als hätte er nie vorgehabt, in einem Salon ausgesprochen zu werden. #gloss[Gepäckträger](Bahnhofsdienstmann für Koffer, Schachteln und jene kleine Demütigung, dass auch Besitz getragen werden muss.) #gloss[Stationsdach](Überdachung des Bahnsteigs. Sie schützt Reisende vor Wetter, nicht vor Blicken.)
{meal(MealPlan.dining_car):
~ mark(meal_taken_in_train)
Der Speisewagen hat dir ein kontrolliertes Mittagessen gegeben. Tischtuch, Besteck, gedämpfte Stimmen, Suppe unter Bewegung. Jetzt bleibt am Bahnhof vor allem der Umstieg.
- else:
{meal(MealPlan.station_restaurant):
Die Bahnhofsrestauration wartet mit Kaffee, Suppe, Zeitungen und dem Trost, dass jede Reiseklasse am Tisch wieder neu sortiert werden kann. #gloss[Bahnhofsrestauration](Gastwirtschaft am Bahnhof. Praktisch, laut und gesellschaftlich nützlich, weil Menschen dort essen, während sie so tun, als seien sie nur unterwegs.)
- else:
{meal(MealPlan.light_refreshment):
Tee, Gebäck und ein wenig Ruhe haben deinen Hunger nicht beseitigt, nur vertagt. Der Körper nimmt solche Höflichkeiten nicht immer dankbar an.
- else:
Du hast die Frage des Mittagessens noch nicht entschieden. Das ist kein Skandal, aber der Bahnhof wird aus kleinen Unterlassungen rasch praktische Schwierigkeiten machen.
}
}
}
-> station_platform
=== station_midday_episode_bucket ===
* {present(viktor)} {loc(loc_station_platform)} [__Erkundige dich bei Viktor__: „Was sehen Sie, wenn Sie einen Bahnhof sehen?“]
„Was sehen Sie, wenn Sie einen Bahnhof sehen?“
„Ein Bahnhof ist selten nur ein Bahnhof“, sagt Viktor. „Er zeigt, wer erwartet wird, wer abgefertigt wird und wer glaubt, ungesehen warten zu können.“
-> TURN
* {present(viktor)} {state_reached(noticed_as_official_arrival)} {lacks(public_mask_established)} [__Prüfe Viktor__: „Sehen die Leute mich an?“]
„Sehen die Leute mich an?“
„Ja“, sagt er. „Aber noch nicht gefährlich. Neugier ist leichter zu lenken als Misstrauen.“
-> TURN
* {present(viktor)}
{state_reached(staff_as_witnesses_noticed)} [__Bemerke__: Dass Dienstleute selten nur Dienst tun.]
„Der Gepäckträger hat mehr verstanden, als er zeigen durfte.“
„Das ist häufig so“, sagt Viktor. „Wer beruflich übersieht, sieht manchmal am meisten.“
{route_repeated(detective, 2):
Du merkst dir das nicht als Sentenz, sondern als Arbeitsregel.
- else:
Der Satz bleibt an dir hängen, weil er in diesem Bahnhof zu viele mögliche Zeugen hat.
}
-> TURN
* {present(viktor)}
{has(public_mask_strained)} [__Entschärfe__: Den kleinen Riss in der Form.]
„Das war nicht meine eleganteste Ankunft.“
{rel_up(viktor_open, viktor_closed):
„Nein“, sagt Viktor. „Aber eine nützliche. Man erfährt wenig über Leute, solange alles gelingt.“
- else:
„Sie war bemerkbar“, sagt Viktor. „Mehr sollte sie nicht werden.“
}
-> TURN
-> DONE
=== station_midday_end ===
-> DONE
// ============================================================================
// ROOM: STATION PLATFORM
// ============================================================================
=== station_platform ===
-> enter_room(loc_station_platform, -> station_platform_entry, -> station_platform_look, -> station_platform_exits, -> station_platform_bucket) -> TURN
=== station_platform_entry ===
~ state_reach(noticed_as_official_arrival)
Der Zug atmet aus. Menschen bewegen sich nicht chaotisch, sondern nach unsichtbaren Ranglinien. Wer zuerst aussteigt, wer wartet, wer trägt, wer nicht trägt, wer so tut, als habe er nichts gesehen. Viktor steht neben dir, korrekt genug, um als Sekretär durchzugehen, und zu aufmerksam, um einer zu sein.
-> DONE
=== station_platform_look ===
+ [__Schaue__: Über den Bahnsteig. #key:l]
Unter dem Stationsdach stehen Reisende, Kisten, Körbe und jene kleinen Gruppen, die nur auf Bahnhöfen entstehen. Niemand starrt offen. Stattdessen entstehen Leerstellen in den Bewegungen der Leute. Ein Blick wandert zu spät weiter. Ein Schritt ändert seine Richtung. Ein Gespräch besteht plötzlich nur noch aus Endungen.
-> TURN
-> DONE
=== station_platform_exits ===
+ {state_reached(baggage_handed_over)} [__Gehe__: Zur Kutsche. #key:s]
~ state_reach(carriage_arranged)
~ state_reach(road_departure_ready)
Die Kutsche aus Hohenreith wartet jenseits des Stationshofes. Dunkelgrüner Lack, schwarze Räder, das gräfliche Wappen dezent auf der Tür, zwei Pferde bereits unruhig im Geschirr. Der Kutscher nimmt den Hut ab, als er dich sieht. Nicht zu tief. Tief genug für Rang, nicht tief genug für Ehrfurcht. #sfx[horse-neigh.ogg]
"Gnädiges Fräulein? Herr Sekretär?"
{class ? noble:
Man hat ihm genug gesagt, um dich einzuordnen. Das ist eine Höflichkeit. Es ist auch eine Warnung.
- else:
Er zögert bei dir um das kleinste Maß. Das Zögern ist keine Unhöflichkeit. Es ist Berechnung. Erste Klasse, Hofschreiben, kein Titel außer Fräulein, und ein Mann neben dir, der aussieht, als hätte er Menschen für weniger verhaften lassen als Starren.
}
Viktor antwortet, bevor du es kannst.
"Vom Jagdhaus Hohenreith?"
"Jawohl, Herr Sekretär. Der Weg ist befahrbar. Wenn der Nebel nicht dichter wird, sollten wir Eibenreith vor Einbruch der Dunkelheit erreichen."
Das Wort tritt ohne Zeremonie in die Luft.
Eibenreith.
Nicht Hohenreith, der Name, der in sauberer Hand auf der Einladung steht. Eibenreith. Das Dorf darunter. Ein kleinerer Name. Älter im Mund. Ein Name mit Wurzeln statt Briefpapier.
~ episode_end("normal")
~ time_move_to(afternoon)
~ loc_move_to(loc_carriage)
-> carriage_ride
-> DONE
=== station_platform_bucket ===
* [__Lies__: Das Schild am Bahnsteig. #key:x]
Der Ortsname ist mit schwarzer Farbe auf hellem Grund gemalt, zweckmäßig, kaiserlich, ohne jede Rücksicht auf den Eindruck, den er auf Ankommende macht. Die Buchstaben sehen aus, als hätten sie nur deshalb Haltung, weil man sie angeschraubt hat.
-> TURN
* [__Höre__: Auf den Bahnhof.]
Unter dem Zischen der Lokomotive liegen kleinere Geräusche. Ein Koffer wird auf Holz abgesetzt. Ein Beamter räuspert sich. Pferdehufe schlagen im gefrorenen Schlamm. Eine Frau beginnt ein Gebet und verschluckt das zweite Wort.
-> TURN
* [__Untersuche__: Die Wartenden.]
Niemand scheint nur zu warten. Die einen zählen Gepäckstücke, die anderen Rangzeichen, wieder andere mögliche Fehler. Der Bahnhof ist kein Ort, an dem man unbemerkt ankommt. Er ist nur höflich genug, diese Tatsache nicht auszusprechen.
-> TURN
+ {meal(MealPlan.station_restaurant)} {lacks(meal_taken_at_station)} [__Speise__: In der Bahnhofsrestauration.]
-> station_restaurant_room
+ {meal(MealPlan.meal_unset)} {lacks(meal_skipped_or_light)} [__Speise__: In der Bahnhofsrestauration, auch wenn es eilt.]
Viktor sieht auf die Bahnhofsuhr. "Für ein ordentliches Essen ist wenig Zeit. Für eine schlechte Entscheidung immer genug."
~ meal_choose(MealPlan.station_restaurant)
Eine warme Suppe ist kein Luxus, wenn ein fremdes Haus den restlichen Tag besitzen wird.
-> station_restaurant_room
+ {meal(MealPlan.meal_unset)} {lacks(meal_skipped_or_light)} [__Nimm__: Nur Tee und etwas Gebäck.]
Viktor sieht auf die Bahnhofsuhr. "Für ein ordentliches Essen ist wenig Zeit. Für eine schlechte Entscheidung immer genug."
~ meal_choose(MealPlan.light_refreshment)
~ mark(meal_skipped_or_light)
Tee, Gebäck, ein paar Minuten Sitzen. Nicht genug, aber genug, um später nicht von Schwäche überrascht zu werden.
-> TURN
+ {meal(MealPlan.meal_unset)} {lacks(meal_skipped_or_light)} [__Verzichte__: Auf eine eigentliche Mahlzeit.]
Viktor sieht auf die Bahnhofsuhr. "Für ein ordentliches Essen ist wenig Zeit. Für eine schlechte Entscheidung immer genug."
~ meal_choose(MealPlan.skipped)
~ mark(meal_skipped_or_light)
Du behältst Zeit und verlierst Wärme. Der Körper wird sich die Rechnung merken.
-> TURN
+ {state_before(baggage_handed_over)} [__Überblicke__: Eine disziplinierte amtliche Zusammenstellung.]
Dein Gepäck wird in Etappen ausgeladen. Was zuerst sichtbar wird, ist nie ganz zufällig. Gepäck ist die kleine Autobiographie, die Bedienstete lesen dürfen.
~ route_inc(route_detective)
Zuerst kommt ein nüchterner Reisekoffer mit vom Gebrauch stumpfen Messingecken, dann eine Aktenmappe, dann eine Hutschachtel, dann der schmale schwarze Kasten, dessen Inhalt sowohl einen Priester als auch einen Taschenspieler in Verlegenheit bringen würde, falls einer von beiden ihn ohne Phantasie durchsuchte.
-> station_baggage_manners
+ {state_before(baggage_handed_over)} [__Überblicke__: Das Gepäck einer eleganten Dame.]
Dein Gepäck wird in Etappen ausgeladen. Was zuerst sichtbar wird, ist nie ganz zufällig. Gepäck ist die kleine Autobiographie, die Bedienstete lesen dürfen.
~ route_inc(route_composure)
Zuerst kommt ein großer Koffer aus dunklem Leder, dann ein kleinerer für Wäsche, dann eine runde Hutschachtel, ein Reise-Necessaire und das Ridikül, das du zu nahe bei der Hand behältst, als dass ein Gepäckträger seine Bedeutung missverstehen dürfte. #gloss[Reise-Necessaire](Kasten oder Tasche für Waschzeug, Fläschchen, Bürsten und jene Ausrüstung, mit der eine Dame nach einer Reise wieder wie eine Dame auszusehen hat.)
-> station_baggage_manners
+ {state_before(baggage_handed_over)} [__Überblicke__: Das Gepäck einer Darstellerin.]
Dein Gepäck wird in Etappen ausgeladen. Was zuerst sichtbar wird, ist nie ganz zufällig. Gepäck ist die kleine Autobiographie, die Bedienstete lesen dürfen.
~ route_inc(route_lover)
Zuerst kommt ein respektabler Koffer, dann eine Hutschachtel, dann ein Reisekasten mit Handschuhen, Schleiern, Bändern, Visitenkarten und kleinen Gegenständen, mit denen man ein Zimmer überreden kann, an Kräfte zu glauben, die längst anwesend sind.
-> station_baggage_manners
+ {state_before(baggage_handed_over)} [__Überblicke__: Eine praktische Auswahl, die zu viel Vorbereitung verrät.]
Dein Gepäck wird in Etappen ausgeladen. Was zuerst sichtbar wird, ist nie ganz zufällig. Gepäck ist die kleine Autobiographie, die Bedienstete lesen dürfen.
~ route_inc(route_detective)
Zuerst kommt ein abgenützter, an den Ecken verstärkter Koffer, dann eine Ledertasche mit Notizheften, Bleistiften, gefalteten Karten, Ersatzhandschuhen, einer kleinen Lampe und genug Notwendigkeiten, um jeden zu beleidigen, der Frauen lieber dekorativ hat.
-> station_baggage_manners
+ {state_before(baggage_handed_over)} [__Überblicke__: Ein übertriebener Haufen, der jede Tarnung erschwert.]
Dein Gepäck wird in Etappen ausgeladen. Was zuerst sichtbar wird, ist nie ganz zufällig. Gepäck ist die kleine Autobiographie, die Bedienstete lesen dürfen.
~ route_inc(route_careless)
Zuerst kommt ein Koffer, dann ein zweiter, dann eine Hutschachtel, dann eine Reisedecke, dann ein Toilettenkasten, dann der schmale schwarze Kasten, dann ein kleineres Paket, von dem du vergessen hattest, dass es das Packen überlebt hat. Am Ende sieht selbst Viktor einen Augenblick lang zahlenmäßig unterlegen aus.
-> station_baggage_manners
- (station_baggage_manners)
Viktor überwacht die Umladung mit knapper Höflichkeit. Er trägt nicht wie ein Diener. Er weist an wie ein Mann, der vorgibt, nicht zu befehlen.
Die kleine Szene vor dem Waggon ist harmlos genug, um gefährlich zu sein. Ein Gepäckträger wartet mit geneigtem Kopf. Der Kutscher steht einige Schritte entfernt. Viktor ist nah genug, um dir beim Aussteigen die Hand zu reichen, aber nicht so nah, dass er es ohne dein stilles Einverständnis täte. Drei Männer, drei Stände, drei verschiedene Arten von Nützlichkeit.
Was hier geschieht, wird niemand in einem Bericht erwähnen. Gerade deshalb wird es behalten.
* * {class ? noble} [__Warte__: Bis Viktor seine Hand anbietet. #key:z]
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
Du wartest einen Atemzug, bis Viktor seine Hand anbietet, und nimmst sie dann, als wäre dies keine Hilfe, sondern die Ordnung der Welt.
Du gibst ihm nicht dein Gewicht. Nur deine Hand. Genau genug, dass er dienen darf, ohne Diener zu werden. Der Gepäckträger senkt den Blick ein wenig tiefer. Der Kutscher sieht, was er sehen muss. Eine Dame, die ihren Rang nicht beweist, weil Beweise für Leute ohne Rang sind.
~ mark(public_mask_established)
* * [__Gewähre__: Viktor die Hand und dem Gepäckträger das Gepäck.]
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
Du nimmst Viktors angebotene Hand knapp und sicher, dankst ihm mit einem Nicken und lässt den Gepäckträger das Gepäck nehmen.
Es ist gutes Benehmen ohne Prunk. Nicht zu vertraut gegenüber Viktor, nicht zu freundlich gegenüber dem Gepäckträger, nicht so kalt, dass es nach Unsicherheit riecht. Mittelstand könnte dies lernen. Adel könnte es billigen. Dienstboten würden erkennen, dass du ihre Arbeit nicht mit Herablassung verwechselst.
~ mark(public_mask_established)
* * [__Dirigiere__: "Zuerst den kleineren Kasten, wenn ich bitten darf."]
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
Du steigst selbst aus, bevor Viktor sich entscheiden kann, und bittest den Gepäckträger sachlich, zuerst den kleineren Kasten zu nehmen.
Das ist nicht ganz falsch, aber auch nicht ganz richtig. Viktor bemerkt die kleine Missachtung der erwarteten Form. Der Gepäckträger gehorcht erleichtert, weil klare Anweisungen leichter zu tragen sind als feine Ungewissheit. Der Kutscher ordnet dich eher der Nützlichkeit als dem Rang zu.
~ mark(public_mask_strained)
~ state_reach(staff_as_witnesses_noticed)
* * [__Reize__: Viktor einen Augenblick zu lang mit ausgestreckter Hand warten lassen.]
~ route_inc(route_lover)
~ rel_inc(viktor_unreliable)
~ rel_inc(viktor_open)
Du lässt Viktor zu lange mit ausgestreckter Hand warten und lächelst erst dann, als hättest du ihn absichtlich geprüft.
Es ist fast ein Fauxpas, gerettet durch Anmut und die Tatsache, dass Männer Demütigungen leichter verzeihen, wenn sie sich wie Aufmerksamkeit fühlen. Viktor hilft dir hinunter. Seine Hand bleibt vollkommen korrekt. Sein Blick nicht ganz.
~ mark(public_mask_strained)
* * [__Verplappere dich__: "Ach, das macht doch zu viel Mühe."]
~ route_inc(route_careless)
~ rel_inc(viktor_unreliable)
Du entschuldigst dich beim Gepäckträger dafür, dass deine Sachen Mühe machen, und greifst selbst nach einem Koffer.
Der Gepäckträger erstarrt, als hättest du ihm eine philosophische Frage gestellt. Viktor tritt sofort dazwischen, höflich genug, um die Rettung wie Zufall aussehen zu lassen. Du hast gegen keine Moral verstoßen, nur gegen die unsichtbare Arbeitsteilung, auf der diese kleine Welt ruht.
~ mark(public_mask_strained)
~ state_reach(staff_as_witnesses_noticed)
* * {class ? working} [__Greife zu__: Dem Gepäckträger beinahe den Koffer abnehmen. #key:t]
~ route_inc(route_careless)
~ rel_inc(viktor_unreliable)
~ rel_inc(viktor_closed)
Du springst hinunter, bevor jemand dir helfen kann, und nimmst dem Gepäckträger beinahe den Koffer aus der Hand.
Für eine Sekunde bist du schneller als deine Verkleidung. Der Gepäckträger hält fest, Viktor greift nach deinem Ellbogen, der Kutscher sieht weg, weil Wegsehen manchmal die höflichste Form von Zeugenschaft ist. Es ist kein Unglück. Nur ein Riss, klein genug, um ihn mit Haltung zu schließen.
~ mark(public_mask_strained)
~ state_reach(staff_as_witnesses_noticed)
-
~ state_reach(baggage_handed_over)
-> TURN
-> DONE
// ============================================================================
// ROOM: STATION RESTAURANT
// ============================================================================
=== station_restaurant_room ===
-> enter_room(loc_station_restaurant, -> station_restaurant_entry, -> station_restaurant_look, -> station_restaurant_exits, -> station_restaurant_bucket) -> TURN
=== station_restaurant_entry ===
~ mark(meal_taken_at_station)
Die Bahnhofsrestauration ist wärmer als der Bahnsteig und weniger privat als das Abteil. Ein Kellner wischt einen Tisch, als könne er Reise, Klasse und Hunger mit demselben Tuch ordnen. An der Wand hängt eine Uhr, unter ihr ein Fahrplan, daneben ein Bild des Kaisers, das in diesem Licht mehr Geduld als Macht zeigt. #gloss[Fahrplan](Gedruckte Zusicherung, dass selbst Entfernung eine Bürokratie besitzt.)
Viktor wählt einen Tisch, von dem aus er Tür und Fenster sehen kann. Du wählst, ob du das bemerkst.
-> DONE
=== station_restaurant_look ===
+ [__Schaue__: Durch den Gastraum. #key:l]
Der Raum ist zu klein für Geheimnisse und groß genug für Gerüchte. Reisende essen mit der Ungeduld von Menschen, die weiter müssen. Der Kellner sieht alles, ohne etwas gesehen zu haben.
-> TURN
-> DONE
=== station_restaurant_exits ===
+ [__Verlasse__: Die Bahnhofsrestauration. #key:n]
Der Bahnsteig empfängt dich mit kalter Luft, Dampf und dem Gefühl, wieder öffentlich zu sein.
-> station_platform
-> DONE
=== station_restaurant_bucket ===
* [__Bemerke__: Viktors Sitzwahl.]
Viktor wählt den Platz nicht zufällig. Er sitzt mit Blick zur Tür, zum Fenster und zum Kellner, als wäre selbst eine Bahnhofsrestauration ein Lageplan.
* * [__Wahre Form__: "Ein Tisch, der Ihnen Ausblick erlaubt. Wie aufmerksam."]
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
"Ein Tisch, der Ihnen Ausblick erlaubt. Wie aufmerksam."
Viktor zieht den Stuhl nicht zu rasch zurück. "Gewohnheit, gnädiges Fräulein."
* * [__Prüfe__: "Sie setzen sich nie mit dem Rücken zur Tür."]
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
"Sie setzen sich nie mit dem Rücken zur Tür."
"Nicht, solange ich dafür bezahlt werde, es nicht zu tun."
* * [__Entschärfe__: "Ich verspreche, weder durch das Fenster noch durch die Küche zu entkommen."]
~ route_inc(route_careless)
~ rel_inc(viktor_open)
~ rel_inc(viktor_unreliable)
"Ich verspreche, weder durch das Fenster noch durch die Küche zu entkommen."
"Nehmen Sie mir nicht alle beruflichen Hoffnungen."
-
-> station_restaurant_lunch_done
- (station_restaurant_lunch_done)
Das Essen ist einfach. Suppe, Brot, Kaffee, vielleicht ein Stück kaltes Fleisch. Es erfüllt keinen Traum, aber einen Zweck. Als du wieder aufstehst, hat der Bahnhof dich nicht weniger fremd gemacht, nur etwas belastbarer.
-> station_platform
-> DONE
@@ -0,0 +1,442 @@
// ============================================================================
// EIBENREITH 03 ROUTES / ANKUNFT HOHENREITH
// ============================================================================
// Zielräume und Übergänge der Nachmittags-Episode "Anreise nach Hohenreith".
//
// Architektur:
// - Hohenreith-Ankunft und Eibenreith-Dorf sind Räume mit entry/look/exits/bucket.
// - Jede Entscheidung liegt direkt in dem Provider, der sie anbietet.
// - Längere Sozialweaves bleiben als vollständige Weaves im jeweiligen Exit- oder
// Bucket-Provider, nicht als ausgelagerte _choices-Knoten.
// ============================================================================
// ============================================================================
// ROOM: HOHENREITH ARRIVAL, PUNCTUAL
// ============================================================================
=== direct_hohenreith_arrival ===
~ loc_move_to(loc_hohenreith_arrival)
~ mark(punctual_official_guest)
~ mark(household_form_preserved)
-> enter_room(loc_hohenreith_arrival, -> direct_hohenreith_entry, -> hohenreith_arrival_look, -> direct_hohenreith_exits, -> direct_hohenreith_bucket) -> TURN
=== direct_hohenreith_entry ===
Die Kutsche lässt Eibenreith unterhalb der Straße zurück. #chapter[Hohenreith]
Das Dorf bleibt nicht ungesehen, nur unbetreten: ein Kirchturm, niedrige Dächer, Rauch, ein paar Gesichter in Fenstern. Dann nimmt der Wald es wieder an sich. Der Weg steigt, und mit jedem Ruck der Kutsche wird der Nachmittag förmlicher. Du fährst nicht mehr irgendwohin. Du wirst erwartet.
Jagdhaus Hohenreith erscheint zwischen Fichten und kahlen Obstbäumen nicht wie ein Schloss, sondern wie ein sehr entschlossener Irrtum: zu neu im oberen Bau, zu alt in den Fundamenten, zu höflich in der Fassade für die Kälte, die darunter aus dem Hang steigt. Dunkle Holzgalerien, helle Mauern, ein vorspringender Mittelteil, Geweihe über dem Portal und Fenster, die das Tal betrachten, als hätten sie es gekauft. #gloss[Jagdhaus](Adeliger Landsitz für Jagden und kurze Aufenthalte. Weniger Hauptsitz als Bühne für Gäste, Förster, Gewehre und Geheimnisse.) #gloss[Portal](Haupteingang eines repräsentativen Gebäudes. Eine Tür, die gelernt hat, Menschen schon vor dem Eintreten zu beurteilen.)
Viktor steigt zuerst aus. Der Kutscher öffnet den Schlag. Ein Diener steht bereits vor der Tür, als wäre er aus dem Haus gesandt worden, noch ehe die Kutsche um die letzte Biegung kam.
Du kommst pünktlich an. Das ist keine Kleinigkeit. In Häusern wie diesem ist Pünktlichkeit die erste Lüge, die alle Beteiligten gemeinsam schützen.
-> DONE
=== hohenreith_arrival_look ===
+ [__Schaue__: Zum Jagdhaus hinauf. #key:l]
Hohenreith steht nicht prunkvoll da. Es steht sicher da, und das ist schlimmer. Wo ein Schloss beeindrucken will, erwartet dieses Haus, dass man seine Regeln schon vor der Schwelle errät.
-> TURN
-> DONE
=== direct_hohenreith_exits ===
+ {state_reached(HohenreithArrivalFrame.expected_guest)} [__Betrete__: Das Haus. #key:n]
-> hohenreith_direct_butler_welcome
-> DONE
=== direct_hohenreith_bucket ===
* [__Wahre Form__: Den ersten Blick des Hauses annehmen.]
~ route_inc(route_composure)
~ state_reach(HohenreithArrivalFrame.expected_guest)
Du steigst aus, nimmst Viktor nur so weit in Anspruch, wie die Form verlangt, und lässt Mantel, Hut und Handschuhe sprechen, bevor du selbst etwas sagst.
Der Diener verneigt sich. Nicht tief. Richtig. Das Haus hat entschieden, dich zunächst als Dame zu behandeln.
-> TURN
* [__Prüfe__: Die Fassade, bevor du dich ihr überlässt.]
~ route_inc(route_detective)
~ state_reach(HohenreithArrivalFrame.expected_guest)
Dein Blick folgt den Linien des Hauses: neue Fenster über älterem Mauerwerk, ein sauberer Eingang über feuchtem Stein, Försterordnung über etwas, das nicht nach Jagd aussieht.
Viktor bemerkt deinen Blick. Er sagt nichts. Das ist klug von ihm.
-> TURN
* [__Entschärfe__: „Es sieht fast so aus, als wolle es uns gefallen.“]
„Es sieht fast so aus, als wolle es uns gefallen.“
~ route_inc(route_careless)
~ rel_inc(viktor_open)
„Häuser wollen nichts“, sagt Viktor.
„Dann ist dieses besonders schlecht darin.“
~ state_reach(HohenreithArrivalFrame.expected_guest)
-> TURN
-> DONE
=== hohenreith_direct_butler_welcome ===
Ein Butler tritt an die unterste Stufe. Nicht der Diener von vorhin, sondern ein Mann, der dem Haus seine Stimme geliehen hat: schwarz gekleidet, glatt rasiert, mit dem leeren Gesichtsausdruck vollendeter Haushaltskenntnis. Er verneigt sich zuerst vor dir, dann vor Viktor.
„Willkommen in Hohenreith.“
Die Worte sind vollkommen richtig. Genau deshalb ist unklar, ob sie Gruß, Urteil oder Besitzanzeige sind.
-> pre_dinner_transition
// ============================================================================
// ROOM: EIBENREITH VILLAGE
// ============================================================================
=== village_detour_start ===
~ loc_move_to(loc_eibenreith_village)
~ mark(village_knowledge_prioritised)
~ state_reach(EibenreithPublicFace.curious)
-> enter_room(loc_eibenreith_village, -> village_detour_entry, -> village_detour_look, -> village_detour_exits, -> village_detour_bucket) -> TURN
=== village_detour_entry ===
Zuerst kommt der Geruch von Rauch. Dann ein Dach, niedrig und dunkel vom Wetter. Dann ein zweites. Dann ein Kirchturm, nicht hoch, nicht anmutig, sondern breitschultrig und blass vor dem Hang dahinter. Seine Mauern wirken älter als das Dorf um sie her und weniger sicher ihres Sieges. Die Fenster sind klein. Die Kirchhofmauer hält die Straße auf Abstand, als bräuchten die Toten Schutz vor den Lebenden oder die Lebenden vor etwas anderem. #chapter[Eibenreith] #sfx[church-bells.ogg](max=8, fade) #image[eibenreith.png](landscape)
Eibenreith erscheint nicht, wie ein Dorf auf einem Bild erscheint, auf einmal und zur Bewunderung geordnet, sondern in Bruchstücken.
Eine Frau mit einem dunklen Kopftuch hält mit einem Eimer in der Hand inne. Ein Bub hört auf, Gänse zu treiben, und lässt sie um seine Stiefel klagen. Zwei Männer vor einem Schuppen beenden im selben Augenblick ihr Gespräch, ohne einander anzusehen. Vorhänge rühren sich an Fenstern, hinter denen niemand zugibt zu stehen. Ein Schmiedeschild bewegt sich leicht in Luft, die du nicht fühlen kannst. Wasser läuft irgendwo unter Brettern, unter Stein, unter der Straße selbst, schnell, kalt und verborgen. #gloss[Schmiedeschild](Schild einer Schmiede. In einem Dorf oft weniger Werbung als Zusicherung, dass Eisen, Pferde und Männer noch in Ordnung gebracht werden können.)
Die Häuser sind nicht arm, nicht eigentlich. Viele sind fest, weißgekalkt, geschindelt, erhalten mit der störrischen Anständigkeit von Menschen, die reparieren, was sie nicht ersetzen können. Und doch stört etwas in ihrer Anordnung das Auge. Sie wenden sich der Kirche zu, aber nicht ganz. Sie halten die Straße, aber lehnen sich von ihr weg. Sie lassen zwischen Hof, Zaun und Holzstoß schmale Durchgänge, in denen sich Schatten zu früh sammelt.
Die Kutsche hält.
Niemand läuft herbei, um dich zu begrüßen. Niemand muss das. Die Nachricht ist bereits ins Dorf eingetreten, auf Wegen schneller als Bahn, Telegraph oder kaiserliches Siegel.
Du sitzt sehr gerade, während Eibenreith dich zum ersten Mal betrachtet.
-> DONE
=== village_detour_look ===
+ [__Schaue__: Die Dorfstraße entlang. #key:l]
Die Dorfstraße ist kein Salon und gerade deshalb nicht weniger gesellschaftlich. Jeder Blick hat hier weniger Politur, aber mehr Gedächtnis.
-> TURN
-> DONE
=== village_detour_bucket ===
* [__Schaue__: In die Gesichter am Straßenrand.]
Die Gesichter verschwinden nicht, wenn du hinsiehst. Sie verändern nur ihre Begründung: Eine Frau prüft plötzlich ihren Eimer. Ein Bub entdeckt die Gänse neu. Ein Mann tut, als habe er schon immer zum Kirchtor gesehen. Das Dorf besitzt keine Bühne, aber jeder hier kennt seinen Auftritt.
-> TURN
* [__Höre__: Auf das Wasser unter der Straße.]
Unter den Rädern, unter Brettern und Steinen, unter der höflichen Behauptung einer Dorfstraße läuft Wasser. Es klingt nicht tief, aber schnell. Als hätte der Ort einen zweiten Atem, einen kalten, verborgenen, der nicht durch menschliche Münder geht.
-> TURN
* [__Untersuche__: Die Kirche. #key:x]
~ state_reach(VillageReligiousTension.church_as_center_seen)
Der Turm ist nicht schlank genug, um in den Himmel zu zeigen. Er steht da wie eine Faust. Die kleinen Fenster geben wenig preis, und die Mauer des Kirchhofs wirkt weniger wie Einfriedung als wie eine alte Gewohnheit, sich gegen etwas zu stemmen.
{
- relig ? catholic:
Gerade das stört dich: nicht der Mangel an Schönheit, sondern der Mangel an Frieden.
- relig ? reform:
Du siehst weniger Andacht als Institution: Stein, Besitz, Grenze, Verwaltung der Furcht.
- else:
Die Kirche sieht nicht aus, als habe sie den älteren Dingen im Tal widersprochen. Eher, als habe sie gelernt, über ihnen zu stehen.
}
-> TURN
* [__Betrachte__: Das Bild neben dem Kirchhofstor.]
~ state_reach(VillageReligiousTension.christian_surface_noted)
~ state_reach(VillageReligiousTension.older_presence_hint)
Über dem alten Putz neben dem Kirchtor blickt eine verblasste gemalte Frau unter einem abblätternden blauen Mantel herab. Ihre Hände sind zum Gebet gefaltet. Ihre Augen, vom Wetter beschädigt, zeigen nicht mehr in dieselbe Richtung.
{
- relig ? catholic:
Für einen Atemzug stört dich nicht, dass das Bild alt ist. Es stört dich, dass es nicht mehr ganz heilig wirkt.
- relig ? reform:
Für einen Atemzug wirkt das Bild weniger wie Andacht als wie Verwaltung: ein aufgemaltes Siegel über etwas, das man nicht fortschaffen konnte.
- relig ? social:
Für einen Atemzug erkennst du die vertraute Geste und misstraust trotzdem dem Ort, an dem sie gemalt wurde.
- else:
Für einen Atemzug, als die Räder über ein verborgenes Wasserrinnsal fahren, wirkt das gemalte Gesicht weniger wie die Heilige Mutter als wie eine Maske, die etwas aufgesetzt wurde, das länger gewartet hatte.
}
-> TURN
* {present(viktor)}
{village_detour_exits.named_village_watching} [__Greife auf__: Deinen Satz über die Blicke zurück.]
„Sie sagten, das werde heute kaum besser“, sagst du. „Das Beobachtetwerden.“
„Ich sagte es, bevor das Dorf Gelegenheit hatte, mir recht zu geben.“
Zwischen euch liegt nicht Trost, sondern Genauigkeit. Für heute ist das vielleicht die brauchbarere Form.
-> TURN
-> DONE
=== village_detour_exits ===
+ [__Warte__: Bis die Kutsche wieder bereit ist. #key:z]
~ state_reach(EibenreithPublicFace.cautious)
Der Kutscher hält vor dem Wirtshaus oder vielleicht nur vor dem Gebäude, das in einem besseren Dorf eines gewesen wäre. Ein Knecht aus dem Dorf tritt aus dem Schatten des Tors. Viktor öffnet die Kutschentür von innen nicht sofort; der Kutscher steigt ab, um den Schlag zu öffnen. Der Knecht sieht auf dein Gepäck, dann auf deine Handschuhe, dann auf Viktor.
Wieder stellt die Welt eine Frage, ohne sie auszusprechen: Wer darf dir helfen, wer muss dir helfen, und wem erlaubst du, dabei wichtig zu wirken?
* * {class ? noble} [__Warte__ · **Adel**: Bis der Kutscher den Schlag öffnet und Viktor zuerst aussteigt. #key:z]
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
Du wartest, bis der Kutscher den Schlag öffnet und Viktor zuerst aussteigt; erst dann reichst du Viktor die behandschuhte Hand.
Es geschieht langsam genug, dass alle Beteiligten ihre Rolle finden. Der Kutscher ist Dienst, Viktor ist Begleitung, der Knecht ist noch nicht wichtig genug, um dich zu berühren. Dein Fuß erreicht den Boden, als hätte die Straße sich dafür bereitgehalten.
~ state_reach(EibenreithPublicFace.cautious)
* * [__Gewähre__: Viktor die Hand und dem Kutscher den Dank.]
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
Du lässt Viktor aussteigen, nimmst seine Hand beim Abtreten und dankst dem Kutscher erst danach mit einem knappen Blick.
Der Ablauf ist korrekt genug, um keine Geschichte zu erzeugen. In einem Dorf, das von Geschichten lebt, ist das ein kleiner Sieg.
~ state_reach(EibenreithPublicFace.cautious)
* * [__Dirigiere__: „Zuerst den kleineren Kasten.“]
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
Du gibst dem Knecht eine klare Anweisung, welches Gepäck zuerst abgeladen werden soll, bevor er danach fragen kann.
Er gehorcht sofort. Viktor registriert die Zweckmäßigkeit. Der Kutscher registriert die Ungewöhnlichkeit. Eine Dame, die Gepäckreihenfolgen kennt, ist entweder sehr erfahren, sehr nervös oder beides.
~ state_reach(EibenreithPublicFace.suspicious)
~ state_reach(ServiceWorld.staff_as_witnesses_noticed)
* * [__Reize__: Den Kutscher mit zu warmer Freundlichkeit.]
~ route_inc(route_lover)
~ rel_inc(viktor_open)
~ rel_inc(viktor_unreliable)
Du bietest dem Kutscher ein sichtbares Lächeln und ein zu freundliches „Danke“ an.
Der Mann senkt den Blick, verwirrt und geschmeichelt. Viktor wird stiller. Freundlichkeit über Standesgrenzen hinweg kann Güte sein, Taktik oder Unachtsamkeit. Auf dem Dorf wird niemand lange brauchen, eine vierte Möglichkeit zu erfinden.
~ state_reach(EibenreithPublicFace.suspicious)
* * [__Verplappere dich__: „Ach, das macht doch zu viel Mühe.“]
~ route_inc(route_careless)
~ rel_inc(viktor_unreliable)
Du entschuldigst dich beim Knecht dafür, dass deine Sachen Mühe machen, und greifst selbst nach einem Koffer.
Der Knecht erstarrt, als hättest du ihm eine philosophische Frage gestellt. Viktor tritt sofort dazwischen, höflich genug, um die Rettung wie Zufall aussehen zu lassen. Du hast gegen keine Moral verstoßen, nur gegen die unsichtbare Arbeitsteilung, auf der diese kleine Welt ruht.
~ state_reach(EibenreithPublicFace.unsettled)
~ state_reach(ServiceWorld.staff_as_witnesses_noticed)
* * {class ? working} [__Rutsche aus__ · **Unterschicht**: Allein, bevor jemand dir helfen kann.]
~ route_inc(route_careless)
~ rel_inc(viktor_unreliable)
~ rel_inc(viktor_closed)
Du steigst allein aus, nimmst deinen Rock hoch genug, um den Schlamm zu sehen, und sagst dem Knecht, er solle mit dem schweren Koffer vorsichtig sein.
Es ist praktisch, schnell und völlig falsch. Nicht, weil du unrecht hast, sondern weil du recht hast wie jemand, der selbst schon getragen hat. Der Knecht erkennt es. Viktor auch.
~ state_reach(EibenreithPublicFace.unsettled)
~ state_reach(ServiceWorld.staff_as_witnesses_noticed)
-
Neben dir senkt Viktor die Stimme.
„Vergessen Sie nicht: In Hohenreith wird jede Höflichkeit etwas bedeuten. Hier wird es jedes Schweigen tun.“
* * [__Prüfe__: „Dann werden wir bereits empfangen.“]
„Dann werden wir bereits empfangen.“
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
„Ja“, sagt er. „Und geprüft.“
* * [__Benenne__: „Sie lassen es klingen, als stünde das Dorf über dem Grafen.“]
„Sie lassen es klingen, als stünde das Dorf über dem Grafen.“
~ route_inc(route_eccentric)
~ rel_inc(viktor_adversarial)
„Nein“, sagt Viktor. „Nur, als hätte es vielleicht mehr als einen überlebt.“
* * [__Entwaffne__: „Wie glücklich, dass ich mehrere Arten des Schweigens eingepackt habe.“]
„Wie glücklich, dass ich mehrere Arten des Schweigens eingepackt habe.“
~ route_inc(route_lover)
~ rel_inc(viktor_open)
Sein Mund bewegt sich beinahe. „Verwenden Sie zuerst das schlichteste.“
* * (named_village_watching) [__Verplappere dich__: „Ich mag es nicht, von Leuten beobachtet zu werden, die sich nicht vorstellen.“]
„Ich mag es nicht, von Leuten beobachtet zu werden, die sich nicht vorstellen.“
~ route_inc(route_careless)
~ rel_inc(viktor_unreliable)
„Das“, sagt er, „wird sich heute kaum bessern.“
* * [__Schone sie__: „Wenn dort jemand unter diesem Blick lebt, beginne ich zu verstehen, weshalb man nach Geistern sandte.“]
„Wenn dort jemand unter diesem Blick lebt, beginne ich zu verstehen, weshalb man nach Geistern sandte.“
~ route_inc(route_sapphic)
~ rel_inc(viktor_insightful)
Viktor sieht dich an, doch welche Antwort er auch erwägt, er behält sie hinter den Zähnen.
-
~ state_reach(EibenreithPublicFace.openly_watching_valerie)
Die Kutsche wartet. Das Dorf wartet nicht; es sieht nur so aus. Zwischen den Häusern haben sich die Blicke anders verteilt. Ein paar Menschen sind verschwunden, aber die Fenster haben mehr Augen bekommen.
Viktor hält die Kutschentür offen. „Wenn wir jetzt fahren, lässt sich die Verspätung noch als Wegverhältnis erklären.“
Der Kutscher sieht zu dir. Er hat verstanden, dass nicht er entscheidet, wann die Reise weitergeht.
* * [__Wahre Form__: Wieder einsteigen und nach Hohenreith weiterfahren.]
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
~ mark(delayed_after_village_detour)
Du steigst wieder ein. Die Entscheidung rettet nicht die Pünktlichkeit, aber die Form: Verspätung durch Aufenthalt, nicht durch Auflehnung.
-> delayed_hohenreith_arrival
* * [__Prüfe__: Das Dorf gesehen haben; jetzt das Haus sehen.]
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
~ mark(delayed_after_village_detour)
Du steigst ein, bevor das Dorf den Aufenthalt in eine zweite Szene verwandeln kann. Du hast nicht genug gesehen. Aber genug, um zu wissen, welche Fragen im Haus falsch beantwortet werden könnten.
-> delayed_hohenreith_arrival
* * (send_carriage_ahead_from_village) [__Verfüge__: Die Kutsche mit Gepäck und Nachricht vorausschicken.]
„Die Kutsche fährt voraus“, sagst du. „Mit dem Gepäck. Und mit einer Nachricht, dass wir nachkommen.“
~ route_inc(route_eccentric)
~ rel_inc(viktor_bold)
~ rel_inc(viktor_adversarial)
~ rel_inc(viktor_unreliable)
~ mark(household_form_disturbed)
Viktor sieht dich an, als hättest du nicht einen Weg, sondern eine Dienstvorschrift verlassen.
Der Kutscher nimmt die Nachricht entgegen, als sei Papier unter bestimmten Umständen gefährlicher als Glatteis. Viktor prüft jedes Wort, das du ihm diktierst, ohne offen zu widersprechen. Das Gepäck wird wieder aufgeladen. Der Kutscher fährt an, langsam genug, dass das Dorf den Vorgang vollständig verstehen kann.
Zurück bleiben du, Viktor, die Straße nach Hohenreith und ein Schweigen, das nicht mehr in die Kutsche passt.
-> footpath_to_hohenreith
-> DONE
// ============================================================================
// FOOTPATH TRANSITION
// ============================================================================
=== village_send_carriage_ahead ===
~ mark(household_form_disturbed)
Der Kutscher nimmt die Nachricht entgegen, als sei Papier unter bestimmten Umständen gefährlicher als Glatteis. Viktor prüft jedes Wort, das du ihm diktierst, ohne offen zu widersprechen. Das Gepäck wird wieder aufgeladen. Der Kutscher fährt an, langsam genug, dass das Dorf den Vorgang vollständig verstehen kann.
Zurück bleiben du, Viktor, die Straße nach Hohenreith und ein Schweigen, das nicht mehr in die Kutsche passt.
-> footpath_to_hohenreith
=== footpath_to_hohenreith ===
~ loc_move_to(loc_eibenreith_village)
~ mark(delayed_after_village_detour)
~ mark(household_form_disturbed)
Der Weg nach Hohenreith steigt nicht steil genug an, um dramatisch zu sein, aber stetig genug, um deine Schuhe, deinen Saum und deine Atmung an die Wirklichkeit zu erinnern. Hinter dir bleibt Eibenreith. Vor dir liegt das Jagdhaus. Dazwischen ist kein Salon, keine Kutsche, keine Polsterung der Verhältnisse.
Viktor geht neben dir, nicht vor dir und nicht hinter dir. Das ist vielleicht Takt. Vielleicht Aufsicht. Vielleicht die einzige Form von Zustimmung, die er sich im Freien leisten kann.
* [__Entschärfe__: „Sie dürfen jetzt sagen, dass Sie mir davon abgeraten hätten.“]
„Sie dürfen jetzt sagen, dass Sie mir davon abgeraten hätten.“
~ route_inc(route_careless)
~ rel_inc(viktor_open)
„Ich hätte Ihnen davon abgeraten.“
„Das kam überzeugender, als ich gehofft hatte.“
-> foot_hohenreith_arrival
* [__Prüfe__: „Wer uns jetzt sieht, sieht uns ohne Hausordnung.“]
„Wer uns jetzt sieht, sieht uns ohne Hausordnung.“
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
„Und wer uns erwartet, wird entscheiden, ob das Absicht oder Mangel an Disziplin war.“
-> foot_hohenreith_arrival
* [__Trotze__: „Manchmal muss man einem Haus den ersten Schritt verweigern.“]
„Manchmal muss man einem Haus den ersten Schritt verweigern.“
~ route_inc(route_eccentric)
~ rel_inc(viktor_adversarial)
„Häuser erinnern sich nicht.“
„Familien tun es.“
-> foot_hohenreith_arrival
=== foot_hohenreith_arrival ===
~ loc_move_to(loc_hohenreith_arrival)
Als ihr das Tor erreicht, steht die Kutsche bereits im Hof. Das Gepäck ist fortgetragen. Eure Ankunft dagegen hat niemand forttragen können. Zwei Diener wissen, dass ihr zu Fuß kamt. Ein Kutscher weiß, dass du es angeordnet hast. Ein Fenster im ersten Stock weiß es ebenfalls.
Der Butler wartet am Portal. Wenn ihn eure Ankunft überrascht, hat er die Überraschung vor vielen Jahren abgeschafft. Er verneigt sich mit einer Genauigkeit, die nicht wärmer wird, nur weil du Atem in der Brust hast und Wegschmutz am Saum.
„Willkommen in Hohenreith.“
Der Satz nimmt euch auf. Er verzeiht nichts.
-> pre_dinner_transition
// ============================================================================
// ROOM: HOHENREITH ARRIVAL, DELAYED
// ============================================================================
=== delayed_hohenreith_arrival ===
~ loc_move_to(loc_hohenreith_arrival)
~ mark(delayed_after_village_detour)
~ mark(household_form_disturbed)
-> enter_room(loc_hohenreith_arrival, -> delayed_hohenreith_entry, -> hohenreith_arrival_look, -> delayed_hohenreith_exits, -> delayed_hohenreith_bucket) -> TURN
=== delayed_hohenreith_entry ===
Die Pferde ziehen die Kutsche an der Kirchhofmauer vorbei und aus dem Dorf hinaus. Die Straße biegt zur unsichtbaren Höhe, auf der Jagdhaus Hohenreith über Eibenreith unter seinem neueren Namen steht.
Als das Jagdhaus erscheint, ist der Nachmittag bereits weiter fortgeschritten, als die Einladung vorsah. Das Haus empfängt dich nicht unhöflich. Das wäre zu ehrlich. Es empfängt dich mit jener gesteigerten Korrektheit, mit der bessere Häuser kleine Verstöße festhalten, ohne sie beim Namen zu nennen.
Ein Diener steht vor dem Portal. Hinter einem Fenster im ersten Stock bewegt sich ein Vorhang zu spät zurück.
Viktor sagt leise: „Jetzt weiß man, dass Sie eigene Umwege nehmen.“
Der Kutscher bringt die Pferde zum Stehen. Noch einmal wird der Schlag geöffnet. Wer verspätet mit der Kutsche ankommt, erhält die Form ein zweites Mal; nur ist sie nun nicht mehr unschuldig.
-> DONE
=== delayed_hohenreith_exits ===
+ {state_reached(HohenreithArrivalFrame.expected_guest)} [__Betrete__: Das Haus. #key:n]
-> hohenreith_delayed_butler_welcome
-> DONE
=== delayed_hohenreith_bucket ===
* [__Wahre Form__: Aussteigen, als sei die Verspätung Teil des Plans.]
„Dann wollen wir dafür sorgen, dass der Umweg Absicht war.“
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
Du wartest, bis Viktor aussteigt, und nimmst seine Hand gerade lange genug. Die Geste schützt euch beide vor der gröberen Wahrheit: dass du im Dorf getan hast, was eine eingeladene Dame nicht tun muss und vielleicht nicht tun sollte.
~ state_reach(HohenreithArrivalFrame.expected_guest)
-> TURN
* [__Prüfe__: Beim Aussteigen das Fenster beachten.]
„Wer am Fenster stand, wusste es schon vor dem Diener.“
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
Du steigst aus und siehst nicht zum Fenster. Nicht sofort. Das ist die einzige Höflichkeit, die Beobachtung manchmal braucht.
~ state_reach(HohenreithArrivalFrame.expected_guest)
-> TURN
* [__Benenne__: Die Verspätung nicht entschuldigen.]
„Ein Haus, das Verspätung kränkt, hat Angst vor eigener Zeit.“
~ route_inc(route_eccentric)
~ rel_inc(viktor_adversarial)
„Bitte sagen Sie das nicht beim Abendessen.“
„Ich sagte es Ihnen. Das ist beinahe dasselbe wie Zurückhaltung.“
~ state_reach(HohenreithArrivalFrame.expected_guest)
-> TURN
-> DONE
=== hohenreith_delayed_butler_welcome ===
Der Butler tritt an die unterste Stufe. Seine Verneigung ist nicht kürzer als sie bei pünktlicher Ankunft gewesen wäre. Das ist die Härte daran.
„Willkommen in Hohenreith.“
Die Worte lassen keinen Vorwurf hören. Sie brauchen keinen.
-> pre_dinner_transition
@@ -0,0 +1,547 @@
// ============================================================================
// EIBENREITH 03 KUTSCHENFAHRT
// ============================================================================
// Kapitel 03: Nachmittag / Kutschenfahrt.
//
// Architektur:
// - episode start/end + episode bucket
// - Kutsche und Wegzeichen als Räume
// - Landschaft, Wegzeichen und Nachmittagsentscheidung als Bucket-Weaves
// - drei Ausgänge in Kapitel 04:
// direkt nach Hohenreith
// Dorfdetour, danach mit der Kutsche weiter
// Dorfdetour, Kutsche voraus, Ankunft zu Fuß
// ============================================================================
// ============================================================================
// EPISODE DEFINITION
// ============================================================================
=== coach_journey ===
-> carriage_ride
=== carriage_ride ===
~ companion_join(viktor)
~ loc_move_to(loc_carriage)
~ contact_sync()
Die Kutsche lässt die Station hinter sich und damit das letzte leicht erkennbare Zeichen der Monarchie. #chapter[Die Kutschenfahrt] #music[Kaiserpunk Jodler.mp3](crossfade, loop, lead=4)
Zuerst folgt der Weg einem Tal, in dem Telegraphendraht ihm noch Gesellschaft leistet und der Fluss in einem hellen, steinigen Bett läuft. Sägewerke, umzäunte Wiesen und Bauernhäuser erscheinen und verschwinden hinter Fichtenbeständen. Die Berge steigen nicht auf einmal. Sie rücken zuständigkeitsweise vor: ein bewaldeter Hang links, eine graue Wand aus Kalk im Norden, ein weiterer Rücken im Osten, bis selbst die Wolken in Dienst getreten scheinen. #gloss[Telegraphendraht](Drahtleitung für elektrische Nachrichten. Sehr modern, solange man nicht fragt, welche Dinge Menschen dadurch nur schneller missverstehen.) #gloss[Sägewerk](Ort, an dem Wald in Bretter, Lohn und Sägemehl übersetzt wird.)
Der Kutscher nennt Orte, wenn Viktor fragt, doch die Namen sind örtlich und praktisch, gedacht für Männer, die wissen, welche Brücke bei Hochwasser nachgibt und welcher Hof störrische Pferde hält. Irgendwo hinter den sichtbaren Rücken, sagt er, liegt der große weiße Rücken des Hochschwab. Nach Osten, jenseits von Wald und Pass, hält die Hohe Veitsch ihr eigenes Wetter. Er sagt das nicht wie ein Führer, sondern wie ein Mann, der Nachbarn erklärt, die vielleicht guter Laune sind und vielleicht nicht. #gloss[Hochschwab](Gebirgsstock der Obersteiermark. Für Wiener eine Landschaft, für Einheimische Wetter, Wasser, Wege und Verschüttungen.)
-> carriage_room
=== carriage_ride_episode_bucket ===
* {present(viktor)} {loc(loc_carriage)} [__Prüfe Viktor__: „Was erwarten Sie dort oben?“]
"Was erwarten Sie dort oben?", fragst du.
"Ein Haus, das Ordnung zeigen möchte", sagt Viktor. "Das genügt fast immer, um Unordnung zu verbergen."
-> TURN
* {loc(loc_carriage)} [__Erkundige dich beim Kutscher__: „Wie heißen die Höfe hier am Weg?“]
„Wie heißen die Höfe hier am Weg?“
Der Kutscher nennt die Höfe, Gräben und Stege ohne die kleinste Absicht, poetisch zu sein. Gerade deshalb wirken die Namen älter als die Karten.
~ state_reach(old_name_heard)
-> TURN
* {present(viktor)}
{state_reached(old_boundary_felt)} [__Prüfe Viktor__: „Hohenreith klingt neu. Der Weg dorthin nicht.“]
„Hohenreith klingt neu. Der Weg dorthin nicht.“
„Häuser wechseln Namen leichter als Gründe“, sagt Viktor.
{route_repeated(sapphic, 2):
Du denkst an Menschen, für die dasselbe gilt. Nicht, weil du schon wüsstest, wer dort oben wartet, sondern weil ein Haus selten nur seine Mauern schützt.
- else:
Du behältst den Gedanken, weil er noch keinen rechten Platz hat.
}
-> TURN
* {present(viktor)}
{roadside_statue_bucket.stopped_for_statue} [__Erinnere__: Viktor an den Stein im Wald.]
„Sie hielten das Wegzeichen für undeutlich.“
„Ich halte es noch immer für undeutlich“, sagt Viktor. „Nur nicht mehr für unwichtig.“
{rel_up(viktor_insightful, viktor_dull):
Dass er das zugibt, ist beinahe mehr als Zustimmung. Es ist die Bereitschaft, seine erste Deutung nicht als Rangfrage zu behandeln.
- else:
Er sagt es, als müsse der Satz erst dienstlich abkühlen, bevor er gelten darf.
}
-> TURN
-> DONE
=== carriage_ride_end ===
-> DONE
// ============================================================================
// ROOM: CARRIAGE
// ============================================================================
=== carriage_room ===
-> enter_room(loc_carriage, -> carriage_entry, -> carriage_look, -> carriage_exits, -> carriage_bucket) -> TURN
=== carriage_entry ===
Die Kutsche schaukelt nicht wie ein Salon. Sie widerspricht dem Körper bei jeder Rinne. Nach der Bahn wirkt die Straße nicht langsamer, sondern persönlicher: Sie gibt jede Unebenheit mit eigener Handschrift weiter.
-> DONE
=== carriage_look ===
+ [__Schaue__: Durch das Kutschenfenster. #key:l]
Draußen läuft das Tal neben euch her, erst offen genug für Telegraphendraht und Flussbett, dann enger, dunkler, nasser. Die Straße gehört noch zur Karte, aber immer weniger zu Wien.
-> TURN
-> DONE
=== carriage_exits ===
+ [__Warte__: Während das Tal enger wird. #key:z]
~ state_reach(managed_landscape_seen)
~ state_reach(city_order_receding)
Das Haupttal verengt sich.
Der Weg biegt davon in einen Seitengraben, und die Veränderung ist augenblicklich. Der Klang ändert sich. Die Räder klingen nicht mehr gegen offene Entfernung, sondern mahlen zwischen Böschungen, Wurzeln und nassem Stein. Die Luft riecht nach Lauberde, Harz und kaltem Wasser. Eiben erscheinen zwischen den Fichten in dunkler, unwahrscheinlicher Geduld, ihre Nadeln zu schwarz für den Nachmittag. #gloss[Seitengraben](Ein kleineres Tal, das von einem Haupttal abzweigt. Auf der Karte eine Linie, in der Kutsche ein Eintritt.) #gloss[Eiben](Dunkle, langsam wachsende Nadelbäume. Giftig, langlebig und daher für Menschen mit Aberglauben oder Bildung gleichermaßen verdächtig.)
"Eibenreither Graben", sagt der Kutscher und bekreuzigt sich so rasch, dass die Geste auch einem Schlagloch gegolten haben könnte.
Viktor bemerkt es. Natürlich bemerkt er es.
"Schlechter Weg?", fragt er.
"Alter Weg", sagt der Kutscher.
Eine Weile spricht niemand.
~ state_reach(valley_order_emerging)
~ state_reach(local_rules_beginning)
~ state_reach(old_boundary_felt)
-> roadside_statue_room
-> DONE
=== carriage_bucket ===
* [__Berühre__: Das kalte Kutschenfenster.]
Das Glas ist kälter, als es im Inneren der Kutsche sein dürfte. Feuchtigkeit sammelt sich an deinem Handschuh und verschwindet sofort wieder, als hätte sie es sich anders überlegt. Draußen streifen Zweige so nah vorbei, dass sie die Scheibe beinahe mit Nägeln prüfen.
-> TURN
* [__Höre__: Auf die Räder im Tal.]
Auf der offenen Straße ist das Geräusch der Räder noch Rhythmus: Holz, Eisen, Stein, Wiederholung. Es lässt sich fast zählen. Vielleicht beruhigt deshalb jede moderne Ordnung so gern: Sie gibt dem Ungewissen Takt.
-> TURN
* [__Untersuche__: Viktors Reaktion. #key:x]
Viktor betrachtet nicht die Landschaft. Er betrachtet ihre Möglichkeiten: Engstellen, Böschungen, tote Winkel, die Entfernung bis zum Kutscher, die Frage, wie rasch man aus einer Kutsche steigt, wenn die Straße selbst dagegen ist.
-> TURN
* [__Bemerke__: Wie der Kutscher spricht.]
Der Kutscher erklärt nichts, wenn Viktor nicht fragt. Das ist keine Stumpfheit. Es ist Ortskenntnis. Wer hier lebt, weiß, welche Dinge fremd genug sind, dass man sie zeigen muss, und welche Dinge zu nah sind, um sie zu benennen.
-> TURN
-> DONE
// ============================================================================
// ROOM: ROADSIDE STATUE
// ============================================================================
=== roadside_statue_room ===
-> enter_room(loc_roadside_statue, -> roadside_statue_entry, -> roadside_statue_look, -> roadside_statue_exits, -> roadside_statue_bucket) -> TURN
=== roadside_statue_entry ===
~ state_reach(religious_markers_seen)
Du beobachtest die Bäume.
Es gibt Wälder, die zu Geschichten einladen, weil sie hübsch sind, und Wälder, die Geschichten zurückweisen, weil das, was dort geschah, keine Zeugen brauchte. Dieser gehört zur zweiten Art. Seine Stämme stehen eng, nicht wild, sondern mit der Haltung einer Menge, die Platz macht für etwas, das vor langer Zeit durch sie getragen wurde.
An einem Hang oberhalb des Weges, halb vom Unterholz verschluckt, erblickst du Stein.
Ein Wegheiligtum vielleicht. Ein Grenzzeichen. Eine Figur. Die Kutsche rollt schon vorbei, bevor deine Augen sich auf ihre Form einigen können. Für einen Augenblick bleibt der Eindruck eines Frauenkopfes zurück, geneigt nicht im Gebet, sondern im Lauschen. #image[statue.png](square) #gloss[Wegheiligtum](Religiöses Zeichen an Straße oder Weg: Kreuz, Bildstock, Heiligenfigur. Es erklärt, dass der Weg nicht nur Richtung, sondern auch Aufsicht besitzt.) #gloss[Grenzzeichen](Markierung einer Grenze. Manche Grenzen trennen Besitz, andere Gewohnheit, und die älteren geben sich selten Mühe, lesbar zu bleiben.)
Der Eindruck bleibt im Nacken sitzen.
-> DONE
=== roadside_statue_look ===
+ [__Schaue__: Zu dem Hang zurück. #key:l]
Die Kutsche ist bereits weiter. Der Hang, der Stein, der mögliche Frauenkopf: alles ist wieder Wald geworden. Das macht es nicht weniger wirklich. Nur weniger zitierfähig.
-> TURN
-> DONE
=== roadside_statue_exits ===
+ {state_reached(faculty_committed)} [__Warte__: Bis der Graben sich öffnet. #key:z]
Der Graben öffnet sich widerwillig.
-> afternoon_approach_room
-> DONE
=== roadside_statue_bucket ===
+ {state_before(faculty_committed)} [__Leugne__: Nichts. Nur altes Gestein und bewegte Zweige.]
~ route_inc(route_composure)
~ mark(no_claim_made)
~ state_reach(faculty_committed)
Du hältst dich an das, was ein Bericht tragen kann. Stein. Hang. Unterholz. Bewegung. Alles andere ist Ermüdung, Erwartung oder die Unverschämtheit eines Waldes, der zu gut komponiert ist.
-> TURN
+ {state_before(faculty_committed)} [__Spüre__: Eine körperliche Warnung, ehe der Gedanke folgt.]
~ route_inc(route_sapphic)
~ mark(sensory_anomaly_framed)
~ state_reach(faculty_committed)
Der Nacken zieht sich zusammen, bevor du einen Grund dafür hast. Nicht Furcht. Wiedererkennen wäre schlimmer. Dein Körper ist manchmal schneller als deine gebildeten Ausreden.
-> TURN
+ {state_before(faculty_committed)} [__Deute__: Ein Muster, das andere übersehen würden.]
~ route_inc(route_detective)
~ mark(intuition_framed)
~ state_reach(faculty_committed)
Du glaubst nicht an zufällige Blickführung. Der Hang, der Stein, der alte Weg, das Kreuzzeichen des Kutschers: Es ist noch kein Beweis. Aber es ist eine Anordnung.
-> TURN
+ {state_before(faculty_committed)} [__Nutze__: Den Eindruck, weil andere ihn von dir erwarten.]
~ route_inc(route_lover)
~ mark(performance_framed)
~ state_reach(faculty_committed)
Vielleicht ist dort nichts. Vielleicht ist dort etwas. Für den Moment genügt, dass alle Beteiligten glauben, du könntest mehr gesehen haben als sie. Ein Ruf ist manchmal ein Instrument, ehe er eine Lüge wird.
-> TURN
* {state_between(faculty_committed, methods_negotiated)}
[__Prüfe mit Viktor__: Das Wegzeichen.]
Viktor blickt durch das kleine rückwärtige Fenster. Die Biegung hat den Hang bereits ausgelöscht.
* * [__Wahre Form__: "Ein Zeichen am Weg. Ich möchte es nicht voreilig benennen."]
"Ein Zeichen am Weg. Ich möchte es nicht voreilig benennen."
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
"Vorsicht ist in fremden Gegenden selten ein Fehler."
* * [__Prüfe__: "Ein Grenz- oder Wegzeichen. Ich wüsste gern, wohin dieser Pfad führt."]
"Ein Grenz- oder Wegzeichen. Ich wüsste gern, wohin dieser Pfad führt."
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
"Sie haben einen Pfad gesehen?"
"Nicht deutlich. Genug, um später danach zu fragen."
"Fragen Sie vorsichtig. Orte, die man nicht erwähnt, sind oft aufschlussreicher als jene, die man empfiehlt."
* * [__Benenne__: "Vielleicht eine Frau im Wald. Oder ein Stein, der eine sein wollte."]
"Vielleicht eine Frau im Wald. Oder ein Stein, der eine sein wollte."
~ route_inc(route_eccentric)
~ rel_inc(viktor_adversarial)
~ rel_inc(viktor_bold)
Er betrachtet die vorbeiziehenden Bäume. "Ein Wegheiligtum?"
"Wenn es ein Heiligtum ist, wurde es seit langem nicht mehr geliebt."
"Sie sprechen, als bemerkten Steine Vernachlässigung."
* * [__Entschärfe__: "Nur Bäume. Die Art, bei der man für Herren mit Revolvern dankbar wird."]
"Nur Bäume. Die Art, bei der man für Herren mit Revolvern dankbar wird."
~ route_inc(route_careless)
~ rel_inc(viktor_unreliable)
Sein Ausdruck verdunkelt sich um einen amtlichen Grad. "Ein Revolver ist ein schlechtes Werkzeug gegen Bäume."
"Dann werde ich mich darauf verlassen, dass Ihre Unterhaltung sie einschüchtert."
Der Kutscher tut, als höre er nichts. Seine Schultern jedoch hören alles.
* * [__Locke__: "Würden Sie mir glauben, wenn ich sagte, ich hätte etwas gesehen?"]
"Würden Sie mir glauben, wenn ich sagte, ich hätte etwas gesehen?"
~ route_inc(route_lover)
~ rel_inc(viktor_unreliable)
"Das hinge davon ab, welchen Vorteil Sie sich von der Antwort versprechen."
"Herr Nowak. Sie verletzen mich."
"Noch nicht."
Es ist das Erste, was er an diesem Tag gesagt hat, das beinahe wie ein Flirt klingt, wenn auch vielleicht nur deshalb, weil Gefahr ein Talent dafür hat, wärmere Kleider zu borgen.
* * [__Verberge__: "Nein."]
"Nein."
~ route_inc(route_sapphic)
~ rel_inc(viktor_closed)
Die Verneinung kommt zu rasch, und ihr hört es beide.
Du denkst nicht mehr an den Stein. Du denkst an den Haushalt, der einen fremden Titel bemüht, ohne den Grund sauber zu nennen; an ein Haus, das Hilfe ruft und zugleich verschweigt, wem geholfen werden soll.
-
~ state_reach(methods_negotiated)
-> TURN
* (stopped_for_statue) {state_between(faculty_committed, methods_negotiated)}
[__Halte__: Die Kutsche anhalten und zurückgehen.]
"Halten Sie an", sagst du.
Der Kutscher hört zuerst die Stimme, dann die Unmöglichkeit des Befehls. Die Pferde gehen noch ein paar Längen weiter, ehe der Wagen schwer in den Schlamm sinkt und steht.
Viktor sieht zur Biegung zurück, hinter der der Hang mit dem Stein verschwunden ist.
"Wegen eines undeutlichen Wegzeichens?"
"Wegen der Frage, weshalb es undeutlich bleiben soll."
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
~ state_reach(methods_negotiated)
-> carriage_halt_room
-> DONE
// ============================================================================
// ROOM: CARRIAGE HALT AFTER STATUE
// ============================================================================
=== carriage_halt_room ===
-> enter_room(loc_carriage_halt, -> carriage_halt_entry, -> carriage_halt_look, -> carriage_halt_exits, -> carriage_halt_bucket) -> TURN
=== carriage_halt_entry ===
Die Kutsche hält eine Biegung weiter, dort, wo der Weg breiter wird und trotzdem nicht einladender. Der Kutscher bleibt auf dem Bock sitzen, als habe er beschlossen, für diese Entscheidung nicht verantwortlich zu sein. Hinter euch liegt die Stelle mit dem Stein. Vor euch wartet der Nachmittag, verstimmt durch eure Verzögerung.
-> DONE
=== carriage_halt_look ===
+ [__Schaue__: Zurück zur Biegung. #key:l]
Von hier aus sieht man den Hang nicht mehr. Nur die dunkle Stelle, an der der Weg die Bäume wieder freigibt. Es ist erstaunlich, wie rasch ein Ort so tun kann, als sei dort nichts gewesen.
-> TURN
-> DONE
=== carriage_halt_exits ===
+ [__Bitte__: Viktor soll auf die Höflichkeiten verzichten.]
"Lassen Sie die Hand und den Schlag. Hier ist niemand, der daraus eine Etikette machen müsste."
{class ? noble:
Viktor öffnet die Tür trotzdem selbst, aber sein Blick ist nicht bei der Geste. "Gnädiges Fräulein, der Umstand, dass niemand zusieht, macht den Wald nicht weniger ungeeignet für Einfälle."
- else:
Viktor lässt die Hand einen Augenblick sichtbar unangeboten. "Warum sollte ich Sie wie eine Dame behandeln, wenn Sie sich so undamenhaft benehmen, mitten auf der Straße eine Untersuchung zu beginnen?"
Es ist zu trocken gesagt, um ganz ein Vorwurf zu sein.
}
-> crossroad_statue_room
+ [__Bestehe__: Viktor soll dich wie eine Dame aussteigen lassen.]
"Herr Nowak. Wenn ich schon im Wald aussteige, dann wenigstens nicht wie ein Paket."
{class ? noble:
Er reicht dir die Hand mit tadelloser Korrektheit und schlecht verborgener Gereiztheit. "Sie wählen einen bemerkenswerten Ort, um auf Form zu bestehen."
- else:
Er reicht dir die Hand mit der Miene eines Mannes, der eine Herausforderung angenommen hat. "Warum sollte ich Sie wie eine Dame behandeln, wenn Sie sich so un-damenhaft benehmen, mitten auf der Straße anzuhalten?"
"Weil Sie soeben bewiesen haben, dass Sie es können."
}
-> crossroad_statue_room
-> DONE
=== carriage_halt_bucket ===
* [__Erkundige dich beim Kutscher__: „Hält hier manchmal jemand an?“]
"Hier?", sagt der Kutscher.
Er blickt nicht zurück. Das genügt als Antwort beinahe.
"Nur wenn was am Rad ist."
~ state_reach(old_name_heard)
-> TURN
-> DONE
// ============================================================================
// ROOM: CROSSROAD STATUE WITHOUT CARRIAGE
// ============================================================================
=== crossroad_statue_room ===
-> enter_room(loc_crossroad_statue, -> crossroad_statue_entry, -> crossroad_statue_look, -> crossroad_statue_exits, -> crossroad_statue_bucket) -> TURN
=== crossroad_statue_entry ===
Der Weg zurück ist kurz genug, um vernünftig zu wirken, und lang genug, um dem Entschluss Gewicht zu geben. Ohne Kutsche klingt der Graben anders. Wasser unter Stein. Ein Vogel, der aufhört. Viktors Schritte hinter dir, nicht weit genug entfernt, um zufällig zu sein.
An der Biegung zeigt sich der Hang wieder. Diesmal siehst du, dass der Stein nicht am Weg steht. Er steht dahinter, jenseits eines schmalen Durchlasses zwischen Eiben, als hätte jemand den Zugang nicht versteckt, nur nicht erklärt. #gloss[Eiben](Dunkle, langsam wachsende Nadelbäume. Giftig, langlebig und daher für Menschen mit Aberglauben oder Bildung gleichermaßen verdächtig.)
-> DONE
=== crossroad_statue_look ===
+ [__Schaue__: Den Hang hinauf. #key:l]
Das Unterholz hat die Formen zurückgenommen, aber nicht vollständig. Zwischen den Zweigen liegt ein heller Fleck Stein. Kein Kreuz. Keine klare Nische. Eher eine Schulter, ein geneigter Kopf, eine Linie, die nicht zu einem Wegheiligtum passen will.
-> TURN
-> DONE
=== crossroad_statue_exits ===
+ [__Gehe__: Durch die Eiben zur Lichtung. #key:n]
-> forest_clearing_room
-> DONE
=== crossroad_statue_bucket ===
* [__Untersuche__: Den schmalen Durchlass.]
Der Boden ist nicht oft begangen, aber auch nicht unberührt. Unter Laub und Nadeln liegt eine ältere Linie, fester als Zufall. Ein Weg, der nicht mehr Weg heißen möchte.
~ state_reach(prechristian_underlayer_suspected)
-> TURN
-> DONE
// ============================================================================
// ROOM: FOREST CLEARING
// ============================================================================
=== forest_clearing_room ===
-> enter_room(loc_forest_clearing, -> forest_clearing_entry, -> forest_clearing_look, -> forest_clearing_exits, -> forest_clearing_bucket) -> TURN
=== forest_clearing_entry ===
Die Eiben geben eine kleine Lichtung frei. Nicht groß genug für Versammlung, nicht offen genug für Zufall. In ihrer Mitte steht die überwachsene Steinfigur, halb von Moos, Brombeerranken und altem Laub gehalten.
Auf den ersten Blick könnte sie die Jungfrau Maria sein. Eine Frauengestalt, ein geneigter Kopf, etwas Mantelartiges über den Schultern. Doch der Stein kennt keine rechte Demut. Die Haltung ist nicht Fürbitte. Sie ist Wachen. Oder Lauschen. Oder etwas Älteres, dem später ein christlicher Name übergestülpt wurde. #gloss[Jungfrau Maria](Mutter Jesu und zentrale Heiligenfigur der katholischen Verehrung. Ihre Bilder können Orte heiligen, aber manchmal auch ältere Orte überdecken.)
Viktor bleibt am Rand der Lichtung stehen.
"Das ist kein gewöhnlicher Bildstock", sagt er.
-> DONE
=== forest_clearing_look ===
+ [__Schaue__: Die Lichtung an. #key:l]
Die Bäume stehen zu gleichmäßig, um ganz natürlich zu wirken, und zu alt, um einer jüngeren Absicht zu gehorchen. Der Boden ist weich, aber darunter liegt Stein. Irgendwo sammelt Wasser sich, ohne sichtbar zu werden.
-> TURN
-> DONE
=== forest_clearing_exits ===
+ {state_reached(old_site_has_claim)} [__Kehre__: Zur Kutsche zurück. #key:s]
Der Rückweg ist enger, als er beim Hineingehen war. Oder du bist unvorsichtiger. Eine Brombeerranke fängt den Saum deines Reisekleids, hält ihn einen Atemzug lang fest und gibt ihn mit einem kleinen, beleidigend klaren Reißen wieder frei.
Viktor hört es.
Natürlich hört er es.
"Verletzt?"
"Nur beleidigt."
Der Riss ist klein. Sichtbar genug, um später nicht mehr ganz zu verschwinden.
-> afternoon_approach_room
-> DONE
=== forest_clearing_bucket ===
* {state_before(old_site_has_claim)} [__Untersuche__: Die überwachsene Frauengestalt. #key:x]
Aus der Nähe verliert die Figur ihre bequeme Erklärung. Der Mantel ist kein Mantel. Die Hände sind nicht gefaltet, sondern liegen am Körper, als hielten sie etwas, das abgeschlagen oder nie fertig gemeißelt wurde. Unter dem Moos erkennst du Reste einer Linie, die weder Rosenkranz noch Faltenwurf ist.
"Römisch?", fragt Viktor.
"Vielleicht", sagst du. "Oder keltisch. Oder etwas, das beide schon falsch benannt hätten."
Das Wort heidnisch liegt kurz in der Luft und wird von niemandem ausgesprochen. #gloss[heidnisch](Christliche Sammelbezeichnung für vor- oder außerchristliche Kulte. Nützlich, wenn man vieles auf einmal verurteilen will, ohne es genau zu kennen.) #gloss[keltisch](Bezeichnung für vor- und frühgeschichtliche Kulturen und Sprachen in Europa. Im 19. Jahrhundert oft halb Wissenschaft, halb romantische Projektionsfläche.)
~ state_reach(prechristian_underlayer_suspected)
~ state_reach(old_site_has_claim)
-> TURN
-> DONE
// ============================================================================
// AFTERNOON APPROACH CHOICE
// ============================================================================
=== afternoon_approach_room ===
-> enter_room(loc_carriage, -> afternoon_approach_entry, -> afternoon_approach_look, -> afternoon_approach_exits, -> afternoon_approach_bucket) -> TURN
=== afternoon_approach_entry ===
Der Kutscher zeigt mit der Peitsche nicht auf etwas, sondern in eine Richtung.
"Dort unten liegt Eibenreith. Wenn gnädiges Fräulein wünscht, kann ich im Dorf halten. Das Jagdhaus liegt höher, hinterm Wald. Wenn wir gleich weiterfahren, kommen wir ordentlich vor dem Abend an."
Viktor sieht dich nicht an, was bei ihm die strengere Form von Erwartung ist.
Nun zum ersten Mal gehört der Nachmittag dir.
-> DONE
=== afternoon_approach_look ===
+ [__Schaue__: Zwischen Dorf und Jagdhaus. #key:l]
Unterhalb der Straße liegt Eibenreith. Oberhalb liegt Hohenreith. Dazwischen hängt die Frage, ob man ein Haus besser versteht, wenn man zuerst sieht, worüber es steht.
-> TURN
-> DONE
=== afternoon_approach_exits ===
+ [__Fahre__: Direkt nach Hohenreith. #key:s]
~ route_inc(route_composure)
~ rel_inc(viktor_reliable)
~ mark(punctual_arrival_preserved)
Du entscheidest dich für die Form. Wer eingeladen wurde, erscheint nicht verspätet, nur weil ein Dorf Fragen verspricht. Fragen laufen nicht davon. Ein erster Eindruck manchmal schon.
~ companion_join(viktor)
~ loc_move_to(loc_hohenreith_arrival)
Die Kutsche fährt am Dorf vorbei, nicht schnell genug, um ungesehen zu bleiben. Häuser, Kirche, ein Brunnen, ein paar Gesichter im Fenster: Eibenreith wird zur Randnotiz eines höflichen Entschlusses. Doch Randnotizen haben die schlechte Gewohnheit, später den Sinn eines Schreibens zu verändern.
-> direct_hohenreith_arrival
+ [__Halte__: In Eibenreith, aber lass die Kutsche warten. #key:w]
~ route_inc(route_detective)
~ rel_inc(viktor_insightful)
~ mark(village_knowledge_prioritised)
Ein Haus erklärt sich selten selbst. Ein Dorf tut es ebenfalls nicht, aber es verrät manchmal, wo die Erklärungen begraben liegen.
~ companion_join(viktor)
~ loc_move_to(loc_eibenreith_village)
Die Kutsche hält im Dorf. Sofort verändert sich das Verhältnis der Dinge: Das Jagdhaus ist nicht mehr Ziel, sondern Verspätung; Viktor nicht mehr nur Begleiter, sondern Zeuge; Eibenreith nicht mehr Kulisse, sondern erster Gesprächspartner.
-> village_detour_start
+ (send_carriage_ahead_from_carriage) [__Verfüge__: In Eibenreith aussteigen und die Kutsche voraus schicken. #key:n]
"Die Kutsche fährt voraus", sagst du. "Mit dem Gepäck. Und mit einer Nachricht, dass wir nachkommen."
~ route_inc(route_eccentric)
~ rel_inc(viktor_bold)
~ rel_inc(viktor_adversarial)
~ rel_inc(viktor_unreliable)
~ mark(village_knowledge_prioritised)
~ mark(arrival_form_compromised)
Viktor sieht dich an, als hättest du nicht einen Weg, sondern eine Dienstvorschrift verlassen.
~ companion_join(viktor)
~ loc_move_to(loc_eibenreith_village)
Die Kutsche hält im Dorf. Das Jagdhaus ist nicht mehr Ziel, sondern eine Adresse, an die Gepäck und Nachricht vorausgeschickt werden können. Viktor ist nicht mehr nur Begleiter, sondern Zeuge einer Eigenmächtigkeit. Eibenreith wird nicht Kulisse, sondern Boden unter deinen Schuhen.
-> village_send_carriage_ahead
-> DONE
=== afternoon_approach_bucket ===
* [__Prüfe Viktor__: „Welchen ersten Eindruck erwartet man dort oben?“]
"Welchen ersten Eindruck erwartet man dort oben?"
"Einen pünktlichen", sagt Viktor.
"Das war nicht meine Frage."
"Doch", sagt er. "Nur nicht Ihre ganze."
-> TURN
-> DONE
+178
View File
@@ -0,0 +1,178 @@
// ============================================================================
// EIBENREITH 04 ABEND-PAUSE / ANKUNFT HOHENREITH
// ============================================================================
// Abend-Pause / Übergang nach Hohenreith.
//
// Kapitel 03 endet mit der Ankunft am Portal. Erst pre_dinner_transition
// beendet die Nachmittags-Episode und öffnet die feste Abend-Pause:
// Ankunft in Hohenreith, Übergang zum Haushalt und abschließender Intro-#score.
// ============================================================================
// ============================================================================
// PRE-DINNER TRANSITION
// ============================================================================
=== pre_dinner_transition ===
~ episode_end("normal")
~ time_move_to(TimeSlot.evening)
~ loc_move_to(loc_hohenreith_dining_room)
~ episode_start(EpisodeId.episode_first_dinner, TimeSlot.evening)
Das Portal schließt sich hinter dir nicht laut. Es muss nicht. Das Haus nimmt Mantel, Hut, Namen, Ruf und Verspätung entgegen und verteilt alles unsichtbar auf Diener, Treppe, Salon, Küche und künftige Tischgespräche.
Noch bevor du die Familie siehst, ist aus der Reise eine Person geworden, die man erklären kann.
-> intro_score
=== intro_score ===
~ temp score_origin = ""
~ temp score_body = ""
~ temp score_outfit = ""
~ temp score_hair = ""
~ temp score_hairstyle = ""
~ temp score_face = ""
~ temp score_religion = ""
~ temp score_belief = ""
~ temp score_approach = ""
~ temp score_route = ""
{
- class ? noble:
~ score_origin = "Glückwunsch. Du hast {given_names} {title_part} {surname} erschaffen: eine junge Dame aus niederem Adel, hofnah genug, um eingeladen zu werden, aber nicht hoch genug, um unantastbar zu sein."
- class ? middle:
~ score_origin = "Glückwunsch. Du hast {title_part} {given_names} {surname} erschaffen: eine bürgerlich geborene Frau, die gelernt hat, Bildung, Ehrgeiz und gesellschaftliche Lesbarkeit als Aufstiegsmittel zu führen."
- else:
~ score_origin = "Glückwunsch. Du hast {title_part} {given_names} {surname} erschaffen: eine Frau aus niedrigerer Herkunft, die sich so weit in die feinen Räume Wiens gearbeitet hat, dass nun jedes falsche Wort doppelt zählt."
}
{
- body ? small_slender:
~ score_body = "Sie ist klein und schmal gebaut; ein Körper, den die Welt leicht unterschätzt, gerade weil er schnell aus ihrem Blick geraten kann."
- body ? medium_soft:
~ score_body = "Sie ist mittelgroß, geformt und gegenwärtig; nicht zerbrechlich, nicht schwerfällig, sondern körperlich präsenter, als manche an einer jungen Dame bequem finden."
- body ? tall_slender:
~ score_body = "Sie ist hochgewachsen und schlank; eine Gestalt, die mehr Raum beansprucht, als ihre Rolle ihr zugestehen möchte."
- body ? compact_strong:
~ score_body = "Sie ist kompakt und kräftiger gebaut; unter Reisekleid und Korsett bleibt eine praktische Stärke sichtbar, die nicht recht zur Erwartung einer Dame passt."
- else:
~ score_body = "Ihr Körper ist noch nicht vollständig beschrieben."
}
{
- outfit ? charcoal_plum_velvet:
~ score_outfit = "Ihr Reisekostüm aus anthrazitfarbener Wolle mit pflaumenfarbenem Samt wirkt gedämpft, teuer und kontrolliert."
- outfit ? black_brown_ivory_lace:
~ score_outfit = "Ihr schwarzbraunes Wollkostüm mit elfenbeinfarbener Bluse wirkt streng, korrekt und beinahe fromm."
- outfit ? blue_grey_practical:
~ score_outfit = "Ihr graublaues Reisekostüm wirkt praktischer, beweglicher und weniger dekorativ, ohne die gesellschaftliche Form aufzugeben."
- outfit ? dark_green_black_trim:
~ score_outfit = "Ihr dunkelgrünes Kostüm mit schwarzem Besatz bleibt diskret und doch schwer zu vergessen."
- outfit ? black_veil_severe:
~ score_outfit = "Ihr schwarzes Reisekleid mit Schleier gibt ihr eine Strenge, die nicht offiziell Trauer ist, aber sehr gut mit ihrem Ruf zusammenarbeitet."
- else:
~ score_outfit = "Ihr Reisekostüm ist noch nicht vollständig beschrieben."
}
{
- hair ? dark_brown:
~ score_hair = "Sie hat dunkelbraunes Haar."
- hair ? chestnut:
~ score_hair = "Sie hat kastanienbraunes Haar mit warmem Glanz."
- hair ? dark_blond_ash:
~ score_hair = "Sie hat dunkelblondes bis aschbraunes Haar."
- hair ? auburn:
~ score_hair = "Sie hat rotbraunes Haar, das selbst unter Hut und Nadeln nicht ganz unauffällig wird."
- else:
~ score_hair = "Ihre Haarfarbe ist noch nicht vollständig beschrieben."
}
{
- style ? centre_part_low_bun:
~ score_hairstyle = "Sie trägt einen glatten Mittelscheitel und einen tiefen Knoten: streng, sauber, ohne überflüssige Bitte um Nachsicht."
- style ? soft_waves_chignon:
~ score_hairstyle = "Sie trägt weiche Stirnwellen und einen sorgfältigen Chignon: zugänglicher in der Wirkung, aber nicht weniger berechnet."
- style ? braided_low_knot:
~ score_hairstyle = "Sie trägt geflochtene Partien und einen schweren Knoten im Nacken: praktisch, geordnet und etwas erdiger als die glatte Wiener Form."
- style ? raised_front_modern:
~ score_hairstyle = "Sie trägt eine modisch gehobene Stirnpartie: gerade noch anständig, aber nicht ganz bereit, älteren Damen zu gefallen."
- else:
~ score_hairstyle = "Ihre Frisur ist noch nicht vollständig beschrieben."
}
{
- face ? cool_sharp:
~ score_face = "Ihr helles, kühles Gesicht mit bestimmten Brauen wirkt wacher und schärfer, als ihr Alter erwarten lässt."
- face ? soft_alert:
~ score_face = "Ihr Gesicht verbindet weicheren Mund und wachen Blick; sie wirkt zugänglich, aber nicht einfach."
- face ? calm_dark_eyes:
~ score_face = "Ihr wärmerer Teint und die dunkleren Augen geben ihr eine ruhige Gegenwart, weniger ätherisch als wach."
- face ? fine_controlled:
~ score_face = "Ihre feinen, blassen Züge wirken zerbrechlich, bis man die sichtbare Kontrolle darin bemerkt."
- face ? marked_jaw:
~ score_face = "Ihr markanteres Gesicht mit gerader Nase und festem Kinn verrät eher Willen als Gefälligkeit."
- else:
~ score_face = "Ihr Gesicht ist noch nicht vollständig beschrieben."
}
{
- relig ? catholic:
~ score_religion = "Ihr Glaube ist ernsthaft katholisch; sie weiß, dass Sünde, Gnade und unsichtbare Mächte keine bloßen Salonwörter sind."
- relig ? social:
~ score_religion = "Ihr Katholizismus ist Erziehung, Gewohnheit und gesellschaftliche Grammatik; vertraut genug, um zu wirken, aber nicht immer tief genug, um zu tragen."
- relig ? reform:
~ score_religion = "Sie begegnet Kirche und Frömmigkeit mit reformerischer Nüchternheit: nützlich, wenn sie ordnen; verdächtig, wenn sie Angst verwalten."
- relig ? spiritist:
~ score_religion = "Sie verbindet katholische Bilder, Totenmessen, Séancen und Ahnungen leichter, als es einem Katechismus lieb wäre."
- relig ? wounded:
~ score_religion = "Der Glaube hat sie geformt und verwundet; sie kennt Gebet und Schuld zu genau, um beides harmlos zu nennen."
- else:
~ score_religion = "Ihr Verhältnis zur Religion ist noch nicht vollständig beschrieben."
}
{
- belief ? believer:
~ score_belief = "Sie hält das Unsichtbare für möglich und manchmal für näher, als die Gebildeten zugeben möchten."
- belief ? sceptic:
~ score_belief = "Sie sucht zuerst irdische Ursachen: Nutzen, Spuren, Gewohnheiten, Lügen und Menschen, die vom Glauben anderer profitieren."
- belief ? performer:
~ score_belief = "Sie weiß, dass ihr mystischer Ruf auch Bühne, Werkzeug und Schutzkleidung ist. Ob Wahrheit oder Trick: Wirkung ist bereits Macht."
- belief ? unsure:
~ score_belief = "Sie hält ihr Urteil zurück; nicht aus Schwäche, sondern weil vorschnelle Gewissheit oft nur eine elegantere Form der Dummheit ist."
- else:
~ score_belief = "Ihr Glaube an das Übernatürliche ist noch nicht vollständig beschrieben."
}
{
- has(arrival_form_compromised):
~ score_approach = "Am Nachmittag ließ sie die Kutsche mit Gepäck und Nachricht vorausfahren und kam zu Fuß in Hohenreith an: eigenmächtig, beobachtet und schwerer zu erklären."
- has(village_knowledge_prioritised):
~ score_approach = "Am Nachmittag wählte sie den Umweg durch Eibenreith und fuhr anschließend verspätet weiter: weniger korrekt, aber reicher an Blicken, Stimmen und Ortswissen."
- else:
~ score_approach = "Am Nachmittag bewahrte sie die Form und fuhr direkt nach Hohenreith: pünktlich, kontrolliert und standesgemäß."
}
{
- route_is_highest(composure):
~ score_route = "Ihre bisher stärkste Maske ist Fassung: Form, Abstand und Selbstbeherrschung als Waffe."
- route_is_highest(detective):
~ score_route = "Ihre bisher stärkste Methode ist Untersuchung: Sie ordnet, prüft und entlarvt, bevor sie sich rühren lässt."
- route_is_highest(lover):
~ score_route = "Ihre bisher stärkste Methode ist Wirkung: Charme, Blick und soziale Wärme werden zu Werkzeugen."
- route_is_highest(sapphic):
~ score_route = "Ihre bisher stärkste Bewegung ist Resonanz: Sie erkennt besonders dort Gefangenschaft, wo Frauen gelernt haben, sie schön zu nennen."
- route_is_highest(careless):
~ score_route = "Ihre bisher stärkste Bewegung ist entwaffnende Unsicherheit: kleine Kontrollverluste, die andere näher heranlassen."
- route_is_highest(eccentric):
~ score_route = "Ihre bisher stärkste Bewegung ist Regelbruch: Sie benennt, was höfliche Menschen nur umstellen."
- else:
~ score_route = "Ihre Persönlichkeit ist noch nicht auf eine einzige Maske festgelegt. Sie trägt mehrere Möglichkeiten nach Hohenreith hinein."
}
#score[{score_origin} {score_body} {score_outfit} {score_hair} {score_hairstyle} {score_face} {score_religion} {score_belief} {score_approach} {score_route} Charaktererschaffung abgeschlossen. Willkommen in Hohenreith.]
-> END
File diff suppressed because it is too large Load Diff
+90
View File
@@ -0,0 +1,90 @@
// ============================================================================
// EIBENREITH GAME BUCKET
// ============================================================================
// The active choice-surface dispatch lives in helpers.ink because it directly
// uses the global bucket variables and room helper functions.
//
// This file contains the game-wide bucket. It is currently empty, but important:
// game-level lore, philosophy, global relationship material, climax/progress
// content, and other cross-episode choices belong here when they are not tied
// to a specific moment, room, or episode.
// ============================================================================
=== game_bucket ===
* {present(viktor)}
{train_compartment_bucket.asked_viktor_role} [__Prüfe Viktor__: „Hat sich Ihre Rolle seit dem Abteil geändert?“]
„Seit dem Abteil nennen wir Sie Sekretär“, sagst du. „Hat sich Ihre Rolle seitdem geändert?“
„Nein“, sagt Viktor. „Nur die Umgebung. Das ist meist gefährlicher.“
{rel_up(viktor_open, viktor_closed):
Er sagt es ohne Spott. Vielleicht, weil er inzwischen weiß, dass du die Antwort nicht mit dem Titel verwechselst.
- else:
Er sagt es so korrekt, dass die Korrektheit selbst wieder Teil der Rolle wird.
}
-> TURN
* {present(viktor)}
{train_compartment_bucket.read_hohenreith_request} [__Benenne__: Dass das Hilfsgesuch ausweicht.]
„Das Schreiben aus Hohenreith nennt vieles nicht.“
„Gute Schreiben tun das“, sagt Viktor. „Schlechte nur auffälliger.“
{route_repeated(detective, 3):
„Sie zählen Auslassungen wie andere Leute Namen zählen.“
„Namen lügen seltener durch Schweigen.“
- else:
„Das Schwierige wird sein, nicht jeder Lücke sofort einen Körper zu geben.“
}
-> TURN
* {present(viktor)}
{route_is_clear(detective, 2)} [__Prüfe__: Ob Viktor deine Fragen erwartet.]
„Sie sehen aus, als warteten Sie bereits auf meine nächste Frage.“
„Ich rechne mit ihr“, sagt Viktor. „Das ist weniger anstrengend, als überrascht zu werden.“
Seine Wachsamkeit hat die Form gewechselt. Sie steht nicht mehr nur zwischen dir und der Welt. Manchmal steht sie neben dir.
~ rel_inc(viktor_insightful)
-> TURN
* {present(viktor)}
{route_is_clear(eccentric, 2)} [__Benenne__: Dass Gehorsam nicht immer Klugheit ist.]
„Sie werden nicht mögen, dass ich das sage“, sagst du. „Aber Gehorsam ist nur in Berichten eine Tugend ohne Nebenwirkungen.“
Viktor sieht dich lange genug an, um eine dienstliche Antwort zu prüfen und zu verwerfen.
„Ich mag es nicht“, sagt er. „Das macht es nicht falsch.“
~ rel_inc(viktor_bold)
~ rel_inc(viktor_adversarial)
-> TURN
* {present(viktor)}
{route_is_clear(composure, 2)} [__Wahre Form__: Die höfliche Oberfläche als Werkzeug behandeln.]
„Man kann sehr viel sagen, ohne eine Regel sichtbar zu brechen.“
„Das ist der Grund, weshalb Regeln überleben“, sagt Viktor.
Für einen Augenblick klingt es nicht wie Warnung, sondern wie Anerkennung.
~ rel_inc(viktor_reliable)
-> TURN
* {present(viktor)}
{afternoon_approach_exits.send_carriage_ahead_from_carriage || village_detour_exits.send_carriage_ahead_from_village || village_send_carriage_ahead} [__Erinnere__: An die vorausgeschickte Kutsche.]
„Die Kutsche ist jetzt wahrscheinlich vor uns.“
„Ja“, sagt Viktor. „Mit Ihrem Gepäck, Ihrer Nachricht und dem Beweis, dass Sie Anweisungen sehr eigenwillig auslegen.“
{rel_up(viktor_bold, viktor_passive):
„Ich hätte widersprechen können“, fügt er hinzu.
„Haben Sie aber nicht.“
„Nein.“
- else:
„Ich nehme an, Sie möchten daraus eine Methode machen.“
}
-> TURN
-> DONE
@@ -0,0 +1,721 @@
// ============================================================================
// EIBENREITH CHARACTER GENERATOR
// ============================================================================
// Enthält Charaktergenerator-Weaves, die aus konkreten Spielsituationen
// aufgerufen werden. Das Personalblatt ist eine begründete Ausnahme von der
// Bucket-Regel, weil es als zusammenhängender Tunnel aus mehreren Startaktionen
// des Abteils heraus eingeschoben wird.
// ============================================================================
LIST NameRegion = austrian, bohemian, hungarian, eastern, southern
VAR name_region = austrian
VAR gender = "weiblich"
VAR birth_year = 0
VAR age = 0
VAR zodiac_note = ""
VAR zodiac_comment = ""
VAR birthplace_note = ""
VAR birthplace_reflection = ""
VAR everyday_language = ""
VAR everyday_language_noble = ""
VAR everyday_language_middle = ""
VAR everyday_language_working = ""
VAR german_knowledge = "sehr gut in Wort und Schrift"
VAR religion = "römisch-katholisch"
VAR marital_status = "ledig"
VAR education = ""
VAR foreign_languages = ""
VAR foreign_languages_noble = ""
VAR foreign_languages_middle = ""
VAR foreign_languages_working = ""
VAR occupation = ""
VAR title_display = ""
VAR given_names_key = ""
VAR given_names_meaning_fragment = ""
VAR given_names_combination_note = ""
VAR surname_written_form = ""
VAR surname_comment = ""
INCLUDE character_generator_generated_includes_and_routers.ink
=== identity_papers_tunnel ===
{tutorial(tut_character_intro):
#alert[Manche Entscheidungen legen dauerhafte Tatsachen über dich fest. Sie verändern nicht nur diese Szene, sondern wie spätere Figuren dich wahrnehmen, ansprechen und einschätzen.]
}
Es klopft.
Viktor hat eure Billete bereits in der Hand, als sich die Tür öffnet. Der Schaffner prüft sie, entwertet sie mit seiner Zange, nickt und gibt sie zurück. Keine Frage nach Namen, Stand oder Auftrag. Nur die kurze Amtsbewegung eines Mannes, der Menschen ausschließlich nach Fahrscheinen ordnet.
#gloss[Billete](Fahrkarten. Ein französisches Lehnwort für kleine Scheine oder Zettel, im Eisenbahnverkehr der Monarchie noch ganz zu Hause. _Fahrkarte_ wäre verständlicher, aber auch ärmer.)
Als die Tür wieder geschlossen ist, betrachtet Viktor die beiden Billete einen Moment zu lange.
„Das erinnert mich“, sagt er und zieht ein gefaltetes Formular aus der Mappe. Das Papier ist nicht billig. Der obere Rand trägt keinen gedruckten Adler, nur eine trockene Registraturnummer und den Vermerk: Personal- und Evidenzbogen.
„Für die Akten“, sagt Viktor. „Es ist nicht mehr als Förmlichkeit.“
Das ist eine Lüge. Nicht sehr groß, nicht sehr gut verborgen. Er sagt sie trotzdem höflich genug, dass du sie entgegennehmen kannst.
Du nimmst den Federhalter. Die Tinte hat sich im Glas auf der Seite gesammelt, weil die Strecke gerade eine lange Kurve macht.
Du liest das Formular und widmest dich jedem Punkt sorgfältig.
_Geschlecht._ Du setzt das Kreuz bei _weiblich_.
~ gender = "weiblich"
Dein Körper hat deine Möglichkeiten von Geburt an festgelegt, lange bevor du alt genug warst, ein Wort dafür zu besitzen. Das Formular fragt nicht nach mehr. Es will nur wissen, in welche Hälfte des Gesetzes es dich legen muss.
_Tag und Jahr der Geburt._
* [__Notiere__: 7. April 1877.]
~ birthdate = "7. April 1877"
~ birth_year = 1877
~ age = 21
~ zodiac = "Widder"
~ zodiac_note = "Anfang, Angriff, Mut und ungeduldige Bewegung"
~ zodiac_comment = "Du bist unter dem Widder geboren, also unter einem Zeichen, das lieber mit dem Kopf durch die Wand stößt als zu warten. Es passt zu Menschen, denen man später vorwirft, sie hätten Türen nicht als Grenze erkannt, sondern als Aufforderung."
* [__Notiere__: 8. Mai 1877.]
~ birthdate = "8. Mai 1877"
~ birth_year = 1877
~ age = 21
~ zodiac = "Stier"
~ zodiac_note = "Beharrung, Besitzsinn, Sinnlichkeit und ein langsamer, schwer verrückbarer Wille"
~ zodiac_comment = "Der Stier verlangt keine Eile. Er steht, wo andere laufen, und macht gerade daraus eine Drohung. In einem Formular wirkt das unschuldig. In einem fremden Haus kann dieselbe Eigenschaft wie Widerstand aussehen."
* [__Notiere__: 7. Juni 1877.]
~ birthdate = "7. Juni 1877"
~ birth_year = 1877
~ age = 21
~ zodiac = "Zwillinge"
~ zodiac_note = "Sprache, Wechsel, Beobachtung und die Gabe, zwei Wahrheiten zugleich auszuhalten"
~ zodiac_comment = "Die Zwillinge gehören zu Türen, Stimmen und Blickwinkeln. Man kann zwei Sätze hören, wo andere nur einen hören, und zwei Absichten im selben höflichen Wort unterbringen."
* [__Notiere__: 8. Juli 1877.]
~ birthdate = "8. Juli 1877"
~ birth_year = 1877
~ age = 21
~ zodiac = "Krebs"
~ zodiac_note = "Gedächtnis, Schutz, Familie und die alte Kunst, seitwärts an gefährlichen Dingen vorbeizukommen"
~ zodiac_comment = "Der Krebs ist ein häusliches Zeichen, sagen die Kalender. Sie verschweigen nur, dass auch ein Haus Klauen haben kann, wenn man es an der falschen Stelle berührt."
* [__Notiere__: 8. August 1877.]
~ birthdate = "8. August 1877"
~ birth_year = 1877
~ age = 21
~ zodiac = "Löwe"
~ zodiac_note = "Stolz, Darstellung, Wärme und der Anspruch, gesehen zu werden"
~ zodiac_comment = "Der Löwe liebt Bühne und Licht. Er verlangt, dass ein Raum bemerkt, wer ihn betritt. Für eine Frau ist das gefährlich, aber manchmal ist Gefahr nur ein anderes Wort für Wirkung."
* [__Notiere__: 8. September 1877.]
~ birthdate = "8. September 1877"
~ birth_year = 1877
~ age = 21
~ zodiac = "Jungfrau"
~ zodiac_note = "Ordnung, Prüfung, Nützlichkeit und ein Blick für Fehler, bevor sie Schaden anrichten"
~ zodiac_comment = "Die Jungfrau sortiert, misst und zweifelt. Sie sieht den Fleck im Protokoll, die falsche Falte im Tuch und die Lücke in einer Erklärung, bevor sie zum Problem wird."
* [__Notiere__: 8. Oktober 1877.]
~ birthdate = "8. Oktober 1877"
~ birth_year = 1877
~ age = 21
~ zodiac = "Waage"
~ zodiac_note = "Maß, Urteil, Schönheit und die gefährliche Gewohnheit, Gegensätze in Haltung zu verwandeln"
~ zodiac_comment = "Die Waage ist höflich genug, selbst ein Urteil wie eine Einladung aussehen zu lassen. Sie kennt den Wert einer geraden Linie und die Kunst, eine Entscheidung als Ausgleich zu verkleiden."
* [__Notiere__: 8. November 1877.]
~ birthdate = "8. November 1877"
~ birth_year = 1877
~ age = 20
~ zodiac = "Skorpion"
~ zodiac_note = "Stachel, Verschwiegenheit, Gedächtnis und eine Neigung zu Dingen, die unter der Oberfläche fortleben"
~ zodiac_comment = "Der Skorpion liegt tief im Herbst. Man sagt ihm Stachel, Verschwiegenheit und Gedächtnis nach. Er passt zu Dingen, die nicht verschwinden, nur weil niemand mehr von ihnen spricht."
* [__Notiere__: 25. November 1877.]
~ birthdate = "25. November 1877"
~ birth_year = 1877
~ age = 20
~ zodiac = "Schütze"
~ zodiac_note = "Ferne, Jagd, Wahrheitssuche und eine unartige Vorliebe für offene Türen"
~ zodiac_comment = "Der Schütze zielt auf etwas, das noch nicht da ist. Er gehört zu Reisenden, Fragen und Wegen, die sich erst zeigen, wenn man bereits zu weit gegangen ist, um unbeteiligt zu wirken."
* [__Notiere__: 8. Jänner 1878.]
~ birthdate = "8. Jänner 1878"
~ birth_year = 1878
~ age = 20
~ zodiac = "Steinbock"
~ zodiac_note = "Aufstieg, Disziplin, Kälte und die Bereitschaft, lange Wege nicht als Beleidigung zu betrachten"
~ zodiac_comment = "Der Steinbock steigt, weil er nicht erwartet, getragen zu werden. Wenn das eine Sternenweisheit ist, dann immerhin eine, die sehr nach Erfahrung klingt."
* [__Notiere__: 7. Februar 1878.]
~ birthdate = "7. Februar 1878"
~ birth_year = 1878
~ age = 20
~ zodiac = "Wassermann"
~ zodiac_note = "Eigensinn, Abstand, Reformgeist und die Kälte, mit der man eine bessere Ordnung entwirft"
~ zodiac_comment = "Der Wassermann steht gern einen Schritt außerhalb. Aus dieser Entfernung erkennt man Muster, aber auch, wie leicht ein Muster für Kälte gehalten wird."
* [__Notiere__: 8. März 1878.]
~ birthdate = "8. März 1878"
~ birth_year = 1878
~ age = 20
~ zodiac = "Fische"
~ zodiac_note = "Empfänglichkeit, Ahnung, Träumerei und die Gefahr, fremde Stimmungen für eigene Wahrheit zu halten"
~ zodiac_comment = "Die Fische stehen im Wasser, ohne sich dafür entschuldigen zu können. Sie nehmen Stimmungen an, bevor andere sie benennen, und verlieren dabei manchmal die Kante des eigenen Willens."
-
-> cg_after_birthdate_written ->
_Geburtsort_.
* [__Geboren in__: Wien.]
~ birthplace = "Wien"
~ name_region = austrian
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch in Wort und Schrift, italienische Lesekenntniß, Grundkenntnisse des Böhmischen"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "französisch, Stenographie, Grundkenntnisse des Böhmischen"
~ everyday_language_working = "deutsch"
~ foreign_languages_working = "etwas Böhmisch aus Dienst und Straße"
~ birthplace_note = "Residenzluft, Amtsgänge, Theater, Musik und die unverschämte Gewohnheit, die eigene Stadt für den Mittelpunkt jeder vernünftigen Welt zu halten"
~ birthplace_reflection = "Bei Wien denkt niemand an Herkunft, sondern an Maßstab. Du kommst nicht aus einer Stadt, sondern aus der Stelle, an der andere Städte sich zu entschuldigen haben."
* [__Geboren in__: Graz.]
~ birthplace = "Graz"
~ name_region = austrian
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch in Wort und Schrift, italienische Lesekenntniß"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "französisch, Stenographie"
~ everyday_language_working = "deutsch"
~ foreign_languages_working = ""
~ birthplace_note = "südliche Milde, katholische Provinzwürde, Beamtenfleiß und der Geruch einer Stadt, die gebildet sein will, ohne Wien allzu offen zu widersprechen"
~ birthplace_reflection = "Graz klingt harmloser, als es ist. Man erwartet Bildung ohne Gefahr, Frömmigkeit ohne Glanz und Ehrgeiz, der höflich genug ist, nicht wie Ehrgeiz auszusehen."
* [__Geboren in__: Linz.]
~ birthplace = "Linz"
~ name_region = austrian
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch in Wort und Schrift, italienische Lesekenntniß"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "französisch, Stenographie"
~ everyday_language_working = "deutsch"
~ foreign_languages_working = ""
~ birthplace_note = "Donauhandel, nüchterne Bürgerlichkeit, Handwerk, kirchliche Ordnung und die Vorstellung, dass Verlässlichkeit wichtiger sei als geistreicher Auftritt"
~ birthplace_reflection = "Linz macht dich in fremden Augen nicht geheimnisvoll. Es macht dich brauchbar, ordentlich und schwerer zu unterschätzen, als ein Wiener zugeben würde."
* [__Geboren in__: Salzburg.]
~ birthplace = "Salzburg"
~ name_region = austrian
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch in Wort und Schrift, italienische Lesekenntniß"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "französisch, Stenographie"
~ everyday_language_working = "deutsch"
~ foreign_languages_working = ""
~ birthplace_note = "geistliche Vergangenheit, Musik, helle Fassaden, frommer Stolz und eine Schönheit, die man gern für Tugend hält"
~ birthplace_reflection = "Salzburg klingt nach Kirche, Musik und sauberem Stein. Man erwartet Anmut von dir, noch bevor man wissen will, ob du Verstand besitzt."
* [__Geboren in__: Innsbruck.]
~ birthplace = "Innsbruck"
~ name_region = austrian
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch in Wort und Schrift, italienische Lesekenntniß"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "französisch, Stenographie"
~ everyday_language_working = "deutsch"
~ foreign_languages_working = ""
~ birthplace_note = "Berge, Landesfrömmigkeit, kaiserliche Treue, sture Körperkraft und der Verdacht, dass man dort eher betet als argumentiert"
~ birthplace_reflection = "Innsbruck gibt dir den Ruf fester Knochen und fester Grundsätze. Beides kann nützlich sein, solange niemand merkt, dass du auch zweifeln kannst."
* [__Geboren in__: Prag.]
~ birthplace = "Prag"
~ name_region = bohemian
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch in Wort und Schrift, böhmisch, italienische Lesekenntniß"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "französisch, böhmisch, Stenographie"
~ everyday_language_working = "böhmisch und deutsch"
~ foreign_languages_working = "deutsch und böhmisch"
~ birthplace_note = "alte Königswürde, böhmischer Eigensinn, deutsche Bildung, tschechische Nähe und eine Stadt, in der jede Sprache wie eine Stellungnahme klingt"
~ birthplace_reflection = "Prag macht dich nie ganz einfach. Man hört in deinem Geburtsort Geschichte, Widerspruch und die Möglichkeit, dass du zwei Sätze meinst, wenn du nur einen sagst."
* [__Geboren in__: Brünn.]
~ birthplace = "Brünn"
~ name_region = bohemian
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch, böhmisch"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "böhmisch, französisch möglich"
~ everyday_language_working = "böhmisch und deutsch"
~ foreign_languages_working = "deutsch als zweite Sprache"
~ birthplace_note = "mährische Nüchternheit, Fabriken, deutsche Amtsform, böhmische Nähe und ein praktischer Verstand, der weniger glänzt als er schneidet"
~ birthplace_reflection = "Brünn klingt nicht romantisch. Gerade deshalb nimmt man dich vielleicht für brauchbarer, ordentlicher und gefährlich weniger eitel."
* [__Geboren in__: Budapest.]
~ birthplace = "Budapest"
~ name_region = hungarian
~ everyday_language_noble = "deutsch und ungarisch"
~ foreign_languages_noble = "französisch in Wort und Schrift, ungarisch, italienische Lesekenntniß"
~ everyday_language_middle = "deutsch und ungarisch"
~ foreign_languages_middle = "ungarisch, französisch, Stenographie"
~ everyday_language_working = "ungarisch"
~ foreign_languages_working = "etwas deutsch neben ungarisch"
~ birthplace_note = "neue Pracht, ungarischer Stolz, breite Straßen, politische Empfindlichkeit und eine Selbstsicherheit, die Wien zugleich bewundert und verdächtigt"
~ birthplace_reflection = "Budapest lässt Wien schlechter schlafen, als Wien zugibt. Wer dort geboren ist, trägt den Verdacht mit sich, sich nicht ordentlich unterzuordnen."
* [__Geboren in__: Krakau.]
~ birthplace = "Krakau"
~ name_region = eastern
~ everyday_language_noble = "polnisch"
~ foreign_languages_noble = "französisch, deutsch"
~ everyday_language_middle = "polnisch"
~ foreign_languages_middle = "deutsch, französisch möglich"
~ everyday_language_working = "polnisch"
~ foreign_languages_working = "deutsch als zweite Sprache möglich"
~ birthplace_note = "polnische Erinnerung, fromme Würde, verlorene Staatlichkeit, Salons voller Geschichte und der Verdacht, dass jedes Gespräch auch politisch sein könnte"
~ birthplace_reflection = "Krakau gibt dir mehr Vergangenheit, als in eine Formularzeile passt. Man erwartet Stolz von dir, vielleicht auch Schwermut, und beides kann man notfalls spielen."
* [__Geboren in__: Lemberg.]
~ birthplace = "Lemberg"
~ name_region = eastern
~ everyday_language_noble = "polnisch und deutsch"
~ foreign_languages_noble = "französisch, deutsch, ruthenisch möglich"
~ everyday_language_middle = "polnisch und deutsch"
~ foreign_languages_middle = "deutsch, ruthenisch möglich"
~ everyday_language_working = "polnisch"
~ foreign_languages_working = "deutsch als zweite Sprache möglich"
~ birthplace_note = "östliche Weite, polnische Form, ruthenische Nähe, jüdische Gelehrsamkeit und das Wiener Vorurteil vom armen, übervölkerten Rand der Monarchie"
~ birthplace_reflection = "Lemberg macht dich für Wien zugleich gebildet und verdächtig fern. Man glaubt dort gern, am Rand der Monarchie beginne bereits die Unordnung."
* [__Geboren in__: Czernowitz.]
~ birthplace = "Czernowitz"
~ name_region = eastern
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch in Wort und Schrift, polnisch oder ruthenisch, italienische Lesekenntniß"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "polnisch oder ruthenisch, französisch, Stenographie"
~ everyday_language_working = "deutsch"
~ foreign_languages_working = "etwas polnisch oder ruthenisch aus Straße und Dienst"
~ birthplace_note = "Sprachengewirr, Beamtenkaffee, östliche Ferne, jüdische und ruthenische Nähe und die Kunst, österreichisch zu wirken, ohne je ganz westlich zu sein"
~ birthplace_reflection = "Czernowitz klingt, als habe die Monarchie am äußersten Rand noch einmal versucht, sich selbst zu erklären. Das macht dich nicht einfacher, aber brauchbarer."
* [__Geboren in__: Triest.]
~ birthplace = "Triest"
~ name_region = southern
~ everyday_language_noble = "deutsch und italienisch"
~ foreign_languages_noble = "französisch in Wort und Schrift, italienisch, slowenische Grundkenntnisse"
~ everyday_language_middle = "italienisch und deutsch"
~ foreign_languages_middle = "italienisch, deutsch, französisch, Stenographie"
~ everyday_language_working = "italienisch"
~ foreign_languages_working = "etwas deutsch oder slowenisch aus Dienst und Hafen"
~ birthplace_note = "Meerluft, Handel, italienische Eleganz, slawische Nachbarschaft, fremde Waren und die Ahnung, dass die Monarchie dort nicht endet, sondern ausfranst"
~ birthplace_reflection = "Triest macht dich weltläufig, noch bevor du den Mund öffnest. Man erwartet Salz, Handel, schöne Handschuhe und eine Loyalität, die vom Wind abhängt."
* [__Geboren in__: Laibach.]
~ birthplace = "Laibach"
~ name_region = southern
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch, slowenisch möglich"
~ everyday_language_middle = "deutsch und slowenisch"
~ foreign_languages_middle = "deutsch, slowenisch"
~ everyday_language_working = "slowenisch"
~ foreign_languages_working = "deutsch als zweite Sprache möglich"
~ birthplace_note = "slowenische Beharrlichkeit, katholische Enge, provinzielle Ordnung und der Blick der Hauptstadt, der kleine Städte gern für kleine Geister hält"
~ birthplace_reflection = "Laibach lässt Wien nicht erschrecken. Das ist sein Vorteil. Wer unterschätzt wird, wird seltener bewacht."
* [__Geboren in__: Agram.]
~ birthplace = "Agram"
~ name_region = southern
~ everyday_language_noble = "kroatisch und deutsch"
~ foreign_languages_noble = "französisch, deutsch, ungarisch möglich"
~ everyday_language_middle = "kroatisch und deutsch"
~ foreign_languages_middle = "deutsch, ungarisch möglich"
~ everyday_language_working = "kroatisch"
~ foreign_languages_working = "deutsch als zweite Sprache möglich"
~ birthplace_note = "kroatischer Stolz, südliche Schärfe, katholische Loyalität, militärische Erinnerung und die Frage, ob man nach Wien, Budapest oder zu sich selbst gehört"
~ birthplace_reflection = "Agram klingt nach Treue mit Widerhaken. Man nimmt an, dass du dienen kannst, aber nicht, dass du dich dabei innerlich verbeugst."
-
-> cg_after_birthplace_written ->
_Genossene Bildung_.
* [__Notiere__: häuslicher Unterricht, katholisches Mädchenpensionat, Privatstunden in französischer Sprache, Klavierspiel und Zeichnen.]
~ class = noble
~ mark(class_def)
~ education = "häuslicher Unterricht, katholisches Mädchenpensionat, Privatstunden in französischer Sprache, Clavierspiel und Zeichnen"
Du schreibst: _{education}_.
So sieht eine Erziehung aus, wenn man sie auf eine Zeile zwingt. Kein Wort von kalten Schlafsälen. Kein Wort von geraden Rücken, gesenkten Stimmen und den langen Nachmittagen, an denen man lernt, dass ein Fehler in der Haltung schwerer wiegen kann als ein Fehler im Denken.
* [__Notiere__: fünf Jahre Volksschule, drei Jahre Mädchen-Bürgerschule, Fortbildung in Stenographie und Kanzleiarbeit.]
~ class = middle
~ mark(class_def)
~ education = "fünf Classen Volksschule, drei Classen Mädchen-Bürgerschule, Fortbildung in Stenographie und Kanzleiarbeit"
Du schreibst: _{education}_.
So sieht Bildung aus, wenn man sie nützlich genug macht, um geduldet zu werden. Rechnen, Schreiben, Stenographie, Kanzleiarbeit. Nicht gelehrt genug, um akademische Titel zu tragen, aber brauchbar genug, um Männer in Ämtern nervös zu machen.
* [__Notiere__: fünf Jahre Volksschule, anschließend Dienstbotenstelle in adeligem Haushalt.]
~ class = working
~ mark(class_def)
~ education = "fünf Classen Volksschule, anschließend Dienstbotenstelle in adeligem Haushalt"
Du schreibst: _{education}_.
So sieht Bildung aus, wenn Armut die Schulbank früher beendet als der Verstand. Fünf Klassen, dann fremde Böden, fremde Teller, fremde Betten und die Kunst, in Räumen zu verschwinden, in denen man alles hört.
-
{
- class == noble:
~ everyday_language = everyday_language_noble
~ foreign_languages = foreign_languages_noble
~ occupation = "Freiin, in besonderer Verwendung"
~ title_display = "Freiin"
~ title_part = "Freiin von"
- class == middle:
~ everyday_language = everyday_language_middle
~ foreign_languages = foreign_languages_middle
~ occupation = "Privatbeamtin in besonderer Verwendung"
~ title_display = "—"
~ title_part = "Fräulein"
- class == working:
~ everyday_language = everyday_language_working
~ foreign_languages = foreign_languages_working
~ occupation = "ehemaliges Dienstmädchen, in besonderer Verwendung"
~ title_display = "—"
~ title_part = "Fräulein"
}
_Umgangssprache_.
Du trägst ein: _{everyday_language}_.
Es ist nicht nur eine Sprache, sondern eine Art, Türen zu öffnen.
_Kenntniß der deutschen Sprache_.
Du schreibst: _{german_knowledge}_.
Das ist weniger Auskunft als Voraussetzung. Wer für Wien arbeitet, muss in Wien lesbar sein.
_Religionsbekenntniß_.
Du setzt das Kreuz bei: _{religion}_.
Das Formular ist nicht daran interessiert, zwischen Glauben, Gewohnheit und Gehorsam zu unterscheiden. Es fragt nach dem Bekenntnis, nicht nach dem Zweifel. Nach der Kirche, nicht nach dem, was übrigbleibt, wenn keine Glocke schlägt.
_Familienstand_.
Du wählst: _ledig_.
Ein einfaches Wort. Auf dem Papier nur ein Zustand, im Leben eine Frist.
Ledig heißt nicht frei. Vor dem Gesetz vertreten dich noch andere, in den Augen von Frauen bist du nicht vollendet, in den Augen von Junggesellen noch zu haben. Jugend macht daraus Reiz und Gefahr. Alter macht daraus Versagen.
_Fremdsprachenkenntniß_.
{
- foreign_languages == "":
Du lässt die Zeile leer.
Sie erfasst nicht, was du verstehst, sondern nur, was ein Amt für vermerkenswert hält.
- else:
Du trägst ein: _{foreign_languages}_.
Manche Sprachen lernt man für Bücher, manche für Salons, manche für Dienstbotenflure und Bahnhöfe. Auf dem Papier sieht alles nach Unterricht aus. In der Wirklichkeit verrät jede Sprache vor allem, wo man Zugang hatte.
}
_Stand und Beschäftigung_.
Die Zeile bleibt einen Augenblick leer, weil du nicht weißt, welches Wort für das, was man mit dir vorhat, vorgesehen ist.
* [__Erkundige dich bei Viktor__: „Was soll ich hier eintragen?“] „Was soll ich hier eintragen?“, fragst du auf das Feld deutend.
Er nimmt das Formular nicht an sich. Er beugt sich nur leicht vor.
„Standesbezeichnung zuerst. Danach die Verwendung.“
* [__Sprich laut mit dir selbst__: „Stand und Beschäftigung?“] „Stand und Beschäftigung?“, murmelst du, während du auf die Zeile starrst.
„Standesbezeichnung zuerst. Danach die Verwendung.“, unterbricht Viktor deine Gedanken.
* [__Wahre Form__: „Welche Fassung ist für die Akte gewünscht?“]
~ route_inc(route_composure)
„Welche Fassung ist für die Akte gewünscht?“, fragst du.
Viktor nimmt das Formular nicht an sich. Er beugt sich nur leicht vor.
„Standesbezeichnung zuerst. Danach die Verwendung.“
* [__Prüfe__: „Das Feld fragt nicht nach Arbeit allein.“]
~ route_inc(route_detective)
Du siehst nicht auf Viktor, sondern auf die Überschrift.
„Das Feld fragt nicht nach Arbeit allein“, sagst du. „Es fragt nach der Ordnung, in der man sie lesen soll.“
Viktors Blick fällt kurz auf die Zeile.
„Standesbezeichnung zuerst. Danach die Verwendung.“
* [__Entwaffne__: „Hier brauche ich Ihren Instinkt für Amtsworte.“]
~ route_inc(route_lover)
Du hebst die Feder ein wenig, als wäre sie schwerer, als sie ist.
„Ich fürchte, Herr Nowak, hier brauche ich Ihren Instinkt für unverdächtige Amtsworte.“
Er sieht dich an, zu kurz für einen Tadel und zu lange für reine Hilfe.
„Standesbezeichnung zuerst. Danach die Verwendung.“
* [__Erkenne__: „Wie nennt man eine Frau, die nicht in die Zeile passt?“]
~ route_inc(route_sapphic)
Du denkst an all die Frauen, die in Formularen nicht arbeiten, sondern helfen; nicht entscheiden, sondern dienen; nicht handeln, sondern zugeordnet werden.
„Wie nennt man eine Frau, die nicht recht in die vorgesehene Zeile passt?“
Viktor antwortet ohne Spott.
„Standesbezeichnung zuerst. Danach die Verwendung.“
* [__Verplappere dich__: „Beschäftigt, wie eine Gouvernante mit schlechten Referenzen.“]
~ route_inc(route_careless)
Die Feder berührt das Papier schon, bevor du dich entschieden hast.
„Beschäftigung“, murmelst du. „Das klingt, als hätte man mich angestellt wie eine Gouvernante mit schlechteren Referenzen.“
Erst als Viktor den Blick hebt, merkst du, dass du laut gesprochen hast.
„Standesbezeichnung zuerst. Danach die Verwendung.“
-
_Verwendung._ Das Wort bleibt einen Augenblick zwischen euch stehen.
* [__Versichere dich__: „Verwendung?“]
~ route_inc(route_composure)
„Verwendung?“
Viktor nickt.
„In besonderer Verwendung.“
* [__Prüfe__: „Durch wen?“]
~ route_inc(route_detective)
„Durch wen?“
Viktor sieht dich an, als sei die Frage berechtigt und die Antwort unerwünscht.
„Durch die Stelle, die Sie entsendet. In besonderer Verwendung.“
* [__Entwaffne__: „Das klingt fast schmeichelhaft.“]
~ route_inc(route_lover)
„Das klingt fast schmeichelhaft.“
„Verlassen Sie sich nicht darauf. In besonderer Verwendung.“
Es ist trocken gesprochen, aber nicht kalt.
* [__Erkenne__: „So nennt man Frauen, wenn man sie braucht.“]
~ route_inc(route_sapphic)
„So nennt man Frauen, wenn man sie braucht.“
Viktor antwortet nicht sofort.
Vielleicht, weil es zu allgemein klingt. Vielleicht, weil es zu genau ist.
„In besonderer Verwendung.“
* [__Verplappere dich__: „Also nicht Dienst. Nicht Amt. Nicht Beruf.“]
~ route_inc(route_careless)
„Also nicht Dienst“, sagst du leiser, als du beabsichtigst. „Nicht Amt. Nicht Beruf.“
Viktor hebt den Blick.
„In besonderer Verwendung.“
Du nickst, als hättest du nur den Wortlaut gesucht und nicht die Stelle, an der er ausweicht.
* [__Benenne__: „Ein höfliches Wort für Benutzung.“]
~ route_inc(route_eccentric)
„Ein höfliches Wort für Benutzung.“
Viktor hält still. Nicht beleidigt. Aufmerksamer.
„Ein notwendiges Wort“, sagt er.
„Das macht es nicht höflicher.“
„Nein“, sagt er. „Nur verwendbar. In besonderer Verwendung.“
-
Du schreibst: _{occupation}_.
Das ist offenbar der Ausdruck, auf den man sich geeinigt hat, wenn man weder lügen noch erklären will.
{
- class == noble:
Das klingt, als hätte man dich in ein Fach gelegt, dessen Beschriftung später noch geändert werden kann.
- class == middle:
Privatbeamtin. Das Wort versucht, nach Stellung zu klingen, ohne dir Rang zu geben. In besonderer Verwendung. Das Amt legt den Schleier darüber.
- class == working:
Ehemaliges Dienstmädchen. Das Wort bleibt stehen, auch wenn man dir nun bessere Handschuhe gibt. In besonderer Verwendung. Das Amt kann aufsteigen lassen, ohne zu vergessen, woher es jemanden geholt hat.
}
_Titel und Standesbezeichnung_.
Du trägst ein: _{title_display}_.
{
- class == noble:
Das Wort ist kleiner als der Abstand, den es schafft. Nicht Gräfin. Nicht Fürstin. Nicht bloß Fräulein. Freiin. Ein Titel für Türen, für Vorstellungen, für den Unterschied zwischen einer Zumutung und einer Bitte.
- class == middle:
Der Strich bleibt stehen, wo ein Mann vielleicht einen Titel vor sich hergetragen hätte. Du bist nicht ungelehrt genug, das dich das nicht stört.
- class == working:
Der Strich ist ehrlich. Kein Titel, kein Prädikat, keine höfliche Abkürzung vor dem Namen. Nur der Beweis, dass du dir alles was du bist selbst erkämpfen musstest.
}
_Vor- und Zuname_.
-> cg_route_given_names ->
~ mark(name_def)
~ state_reach(ValerieWorkingMask.name_claimed)
Es scheint, als wäre alles beisammen.
_{given_names} {surname_written_form},_
_geboren am {birthdate} zu {birthplace},_
_weiblich, {religion}, {marital_status},_
_{everyday_language}{foreign_languages != "": , {foreign_languages}}_
_{occupation}_
Das beschreibt dich nicht ganz. Aber genug von dir, um abgelegt, weitergereicht und bei Bedarf wieder hervorgeholt zu werden.
Du legst die Feder nieder.
Viktor wartet, bis du das Blatt von selbst zu ihm schiebst. Erst dann nimmt er es auf.
Er liest schnell. Nicht flüchtig. Ohne Kommentar.
{class == noble: „Danke, gnädiges Fräulein.“|„Danke, Fräulein {surname}.“}
Der Zug stößt über eine Weiche. Für einen Augenblick zittert die Schrift auf dem Papier, als wäre sie noch nicht ganz trocken.
->->
=== train_corridor_tunnel_event ===
Der Zug stößt in einen Tunnel.
Das Land draußen erlischt. Die Scheiben verlieren Felder, Himmel und die hellen Fetzen von Ortschaften. Übrig bleiben Messinggriffe, dunkles Holz und der bleiche Umriss deines Körpers.
* {lacks(body_def)} [__Erkenne__: Eine kleine, schmale Gestalt.]
~ body = small_slender
Unter Mantel, Rock und Haltung bleibt etwas Knappes, Schnelles an dir: schmale Schultern, feine Handgelenke, ein Körper, den Räume leicht übersehen und Gespräche zu spät bemerken.
* {lacks(body_def)} [__Erkenne__: Eine mittelgroße Gestalt mit ruhiger Gegenwart.]
~ body = medium_soft
Du wirkst nicht zerbrechlich. Die Taille ist geformt, nicht mädchenhaft; die Schultern sind ruhig, die Anwesenheit fester, als manche Männer an einer jungen Frau bequem finden.
* {lacks(body_def)} [__Erkenne__: Eine hochgewachsene, schlanke Gestalt.]
~ body = tall_slender
Aufrecht stehend nimmst du mehr Raum ein, als deine Rolle verspricht: lange Linien, schmale Hände, eine Haltung, die Disziplin beinahe wie Herkunft aussehen lässt.
* {lacks(body_def)} [__Erkenne__: Eine kompakte, kräftigere Gestalt.]
~ body = compact_strong
Reisekleidung und Korsett ordnen dich, aber sie verleugnen nicht alles. In Nacken, Unterarmen und Gleichgewicht liegt mehr Kraft, als man einer Dame höflich zutraut.
-
Die Spiegelung spricht auch durch Stoff: was verborgen werden soll, was gezeigt werden darf, was nur eine andere Frau sofort versteht.
* [__Trage__: Ein dunkel anthrazitfarbenes Reisekostüm mit pflaumenfarbenem Samtkragen.]
~ outfit = charcoal_plum_velvet
Anthrazitfarbene Wolle, pflaumenfarbener Samt an Kragen und Manschetten: gedämpft genug für den Tag, teuer genug für Menschen mit Augen. #gloss[Reisekostüm](Damenkleidung für die Reise. Fest genug für Bahnhofsschmutz, korrekt genug für fremde Blicke, und unbequem genug, damit niemand vergisst, dass auch Zweckmäßigkeit weiblich auszusehen hat.)
* [__Trage__: Ein schwarzbraunes Wollkostüm mit elfenbeinfarbener Bluse und schmaler Spitze.]
~ outfit = black_brown_ivory_lace
Der Rock ist dunkel und schwer genug für die Reise, die Jacke streng, die elfenbeinfarbene Bluse am Hals hochgeschlossen. Die Spitze ist schmal, sauber und gefährlich nahe an Frömmigkeit.
* [__Trage__: Ein graublaues Kostüm mit kurzem Mantel und praktischen Knöpfen.]
~ outfit = blue_grey_practical
Graublaue Wolle, ein kurzer Mantel, ein Rock, der beim Aussteigen nicht sofort Verrat übt, und Knöpfe, die mehr nach Zweck als nach Schmuck aussehen.
* [__Trage__: Ein dunkelgrünes Kostüm mit schwarzem Besatz und passendem Hut.]
~ outfit = dark_green_black_trim
Das Grün ist so dunkel, dass es erst im Licht der Fenster sichtbar wird. Schwarzer Besatz, passende Handschuhe, ein Hut mit kleiner Feder: nicht laut, aber schwer zu vergessen.
* [__Trage__: Ein schwarzes Reisekleid mit Schleier, zu ernst für bloße Mode.]
~ outfit = black_veil_severe
Das Schwarz ist nicht Trauer, jedenfalls nicht offiziell. Ein schmaler Schleier, dunkle Handschuhe, glatter Rock. Kleidung, in der skeptische Männer leichter an Ahnungen glauben.
-
~ mark(body_def)
->->
// ============================================================================
// TRAIN CLERGY RELIGION CHARACTER GENERATOR
// ============================================================================
=== clergy_religion_tunnel ===
Eine Abteiltür öffnet sich, bevor du sie erreicht hast. Ein Priester tritt heraus, eine Mappe unter dem Arm, das Gesicht noch bei den Menschen im Abteil. Er will an dir vorbei und bleibt doch einen halben Schritt zu lange stehen. Hinter ihm hebt eine Nonne den Blick, senkt ihn wieder und sieht gerade dadurch genug. #gloss[Nonne](Ordensfrau. Von der Welt getrennt zu sein bedeutet nicht, sie nicht lesen zu können.)
* [__Bekenne__: Dich bekreuzigen und ehrerbietig grüßen.]
~ relig = catholic
Gott ist kein Gesprächsthema für Abteile. Du glaubst nicht kindlich, aber tief: an Sünde, Gnade, Sakrament, Versuchung und an die gefährliche Nähe der unsichtbaren Welt. #gloss[Sakrament](Heilige Handlung der katholischen Kirche. In einer katholischen Gesellschaft ist es zugleich Gnade, Ordnung und öffentliche Form.)
* [__Ordne ein__: Höflich nicken, wie man es gelernt hat.]
~ relig = social
Du nickst mit der richtigen Mischung aus Achtung und Distanz. Du kennst Feiertage, Beichten, Prozessionen und die Macht eines Pfarrers über Menschen, die behaupten, ihn nicht zu fürchten.
* [__Misstraue__: Den Blick halten, aber keinen Schritt zu viel weichen.]
~ relig = reform
Du weichst höflich genug aus, aber nicht demütig. Priester erklären zu oft, was sie zuerst besitzen möchten: Schuld, Frauen, Armut und Angst.
* [__Verbinde__: Im Segen auch die Toten hören.]
~ relig = spiritist
Heiligenbilder, Totenmessen, Séancen, Träume: Die sauberen Grenzen dazwischen scheinen dir eher von Männern gezogen als von der Ewigkeit selbst. #gloss[Séancen](Geistersitzungen mit Tisch, gedämpftem Licht und sehr viel Erwartung. Je dunkler der Raum, desto leichter glauben die Anwesenden, sie sähen klar.)
* [__Erinnere dich__: Dass der Glaube dich formte, bevor du dich wehren konntest.]
~ relig = wounded
Du kennst die Gebete zu gut, um sie einfach abzulegen, und die Schuld zu gut, um sie fromm zu nennen. Katholische Bilder sind für dich keine Dekoration. Sie greifen nach Stellen, die du lieber versiegelt hieltest.
-
~ mark(relig_def)
Der Priester neigt den Kopf, als habe er genau so viel erfahren, wie Höflichkeit erlaubt. Dann tritt er in sein Abteil zurück und schließt die Tür.
->->
// ============================================================================
// WASHROOM MIRROR CHARACTER GENERATOR
// ============================================================================
=== washroom_mirror_character_generator ===
* {lacks(face_def)} [__Erkenne__: Dunkelbraunes Haar unter dem Reisehut.]
~ hair = dark_brown
Dunkelbraunes Haar rahmt Stirn und Schläfen. Im schwachen Lampenlicht wird es wärmer, als es im Wiener Morgen wirkte.
* {lacks(face_def)} [__Erkenne__: Kastanienbraunes Haar, das Licht sammelt.]
~ hair = chestnut
Kastanienbraunes Haar fängt jedes bisschen Licht und macht dein Gesicht weicher, als dein Blick es erlaubt.
* {lacks(face_def)} [__Erkenne__: Aschblondes Haar, das sich zurücknimmt.]
~ hair = dark_blond_ash
Dunkelblondes, aschbraun wirkendes Haar gibt dir etwas Zurückhaltendes, besonders unter dem dunklen Reisehut.
* {lacks(face_def)} [__Erkenne__: Rotbraunes Haar, sorgfältig gebändigt.]
~ hair = auburn
Rotbraunes Haar ist nie ganz unauffällig, auch wenn Nadeln, Hut und Sitte es zur Ordnung zwingen.
-
Die Frisur ist nicht bloß Geschmack. Eine Frau trägt auch ihre Beherrschung auf dem Kopf.
* [__Ordne__: Einen glatten Mittelscheitel und einen tiefen Knoten.]
~ style = centre_part_low_bun
Der Mittelscheitel ist sauber, der Knoten tief und fest. Keine Locke bittet um Nachsicht.
* [__Ordne__: Weiche Stirnwellen und einen sorgfältigen Chignon.]
~ style = soft_waves_chignon
Die Stirnwellen sind weich gelegt, der Chignon sitzt sauber unter dem Hut. Zugänglicher, aber nicht weniger berechnet.
* [__Ordne__: Geflochtene Partien und einen schweren Knoten.]
~ style = braided_low_knot
Geflochtene Partien führen das Haar zur Ordnung zurück. Der Knoten im Nacken ist schwerer, ländlicher vielleicht, aber unter städtischer Hand gezähmt.
* [__Ordne__: Eine modisch gehobene Stirnpartie.]
~ style = raised_front_modern
Das Haar hebt sich über der Stirn mit jener neuen Fülle, die ältere Damen für Eitelkeit und jüngere für Freiheit halten. Unter dem Reisehut bleibt es gerade noch anständig.
-
Das Gesicht im Spiegel ist deutlich genug, um nicht mehr auszuweichen.
* [__Erkenne__: Helle Haut, kühle Augen und scharfe Brauen.]
~ face = cool_sharp
Dein Teint ist hell und kühl, die Brauen geben dem Gesicht mehr Bestimmtheit, als ein flüchtiger Blick erwartet.
* [__Erkenne__: Rosigen Teint, weichen Mund und wachen Blick.]
~ face = soft_alert
Der Mund wirkt weicher als der Blick; zusammen macht dich das zugänglicher, aber nicht einfacher.
* [__Erkenne__: Warmen Teint, dunklere Augen und ruhige Miene.]
~ face = calm_dark_eyes
Der Teint ist wärmer, die Augen dunkler, die Miene ruhiger. Du wirkst weniger ätherisch als gegenwärtig: eine Frau aus Fleisch, Gedächtnis und Absicht.
* [__Erkenne__: Blasse Haut, feine Züge und ein kontrolliertes Gesicht.]
~ face = fine_controlled
Die Züge sind fein, fast zerbrechlich, doch die Kontrolle darin ist zu sichtbar, um harmlos zu wirken. Wer dich für schwach hält, möchte es zu gern.
* [__Erkenne__: Ein markanteres Gesicht mit gerader Nase und festem Kinn.]
~ face = marked_jaw
Die Linien sind weniger gefällig, als ein Porträtmaler sie gern hätte. Das Gesicht verrät eher Willen als Sanftmut.
-
~ mark(face_def)
Du befestigst Hut und Nadeln und ziehst die Handschuhe wieder an. Das Gesicht, das nach Hohenreith reisen wird, ist wieder gesellschaftsfähig.
~ state_reach_if_started((mirror_done, freshen_up_done))
-> TURN
@@ -0,0 +1,108 @@
// ============================================================================
// GENERATED INCLUDES AND ROUTERS
// ============================================================================
INCLUDE character_generator_name_helpers.ink
INCLUDE given_names/cg_given_names_noble_austrian.ink
INCLUDE given_names/cg_given_names_noble_bohemian.ink
INCLUDE given_names/cg_given_names_noble_hungarian.ink
INCLUDE given_names/cg_given_names_noble_eastern.ink
INCLUDE given_names/cg_given_names_noble_southern.ink
INCLUDE given_names/cg_given_names_middle_austrian.ink
INCLUDE given_names/cg_given_names_middle_bohemian.ink
INCLUDE given_names/cg_given_names_middle_hungarian.ink
INCLUDE given_names/cg_given_names_middle_eastern.ink
INCLUDE given_names/cg_given_names_middle_southern.ink
INCLUDE given_names/cg_given_names_working_austrian.ink
INCLUDE given_names/cg_given_names_working_bohemian.ink
INCLUDE given_names/cg_given_names_working_hungarian.ink
INCLUDE given_names/cg_given_names_working_eastern.ink
INCLUDE given_names/cg_given_names_working_southern.ink
INCLUDE surnames/cg_surnames_noble_austrian.ink
INCLUDE surnames/cg_surnames_noble_bohemian.ink
INCLUDE surnames/cg_surnames_noble_hungarian.ink
INCLUDE surnames/cg_surnames_noble_eastern.ink
INCLUDE surnames/cg_surnames_noble_southern.ink
INCLUDE surnames/cg_surnames_middle_austrian.ink
INCLUDE surnames/cg_surnames_middle_bohemian.ink
INCLUDE surnames/cg_surnames_middle_hungarian.ink
INCLUDE surnames/cg_surnames_middle_eastern.ink
INCLUDE surnames/cg_surnames_middle_southern.ink
INCLUDE surnames/cg_surnames_working_austrian.ink
INCLUDE surnames/cg_surnames_working_bohemian.ink
INCLUDE surnames/cg_surnames_working_hungarian.ink
INCLUDE surnames/cg_surnames_working_eastern.ink
INCLUDE surnames/cg_surnames_working_southern.ink
=== cg_route_given_names ===
{
- class == noble and name_region == austrian:
-> cg_given_names_noble_austrian ->
- class == noble and name_region == bohemian:
-> cg_given_names_noble_bohemian ->
- class == noble and name_region == hungarian:
-> cg_given_names_noble_hungarian ->
- class == noble and name_region == eastern:
-> cg_given_names_noble_eastern ->
- class == noble and name_region == southern:
-> cg_given_names_noble_southern ->
- class == middle and name_region == austrian:
-> cg_given_names_middle_austrian ->
- class == middle and name_region == bohemian:
-> cg_given_names_middle_bohemian ->
- class == middle and name_region == hungarian:
-> cg_given_names_middle_hungarian ->
- class == middle and name_region == eastern:
-> cg_given_names_middle_eastern ->
- class == middle and name_region == southern:
-> cg_given_names_middle_southern ->
- class == working and name_region == austrian:
-> cg_given_names_working_austrian ->
- class == working and name_region == bohemian:
-> cg_given_names_working_bohemian ->
- class == working and name_region == hungarian:
-> cg_given_names_working_hungarian ->
- class == working and name_region == eastern:
-> cg_given_names_working_eastern ->
- class == working and name_region == southern:
-> cg_given_names_working_southern ->
- else:
-> cg_given_names_noble_austrian ->
}
->->
=== cg_route_surnames ===
{
- class == noble and name_region == austrian:
-> cg_surnames_noble_austrian ->
- class == noble and name_region == bohemian:
-> cg_surnames_noble_bohemian ->
- class == noble and name_region == hungarian:
-> cg_surnames_noble_hungarian ->
- class == noble and name_region == eastern:
-> cg_surnames_noble_eastern ->
- class == noble and name_region == southern:
-> cg_surnames_noble_southern ->
- class == middle and name_region == austrian:
-> cg_surnames_middle_austrian ->
- class == middle and name_region == bohemian:
-> cg_surnames_middle_bohemian ->
- class == middle and name_region == hungarian:
-> cg_surnames_middle_hungarian ->
- class == middle and name_region == eastern:
-> cg_surnames_middle_eastern ->
- class == middle and name_region == southern:
-> cg_surnames_middle_southern ->
- class == working and name_region == austrian:
-> cg_surnames_working_austrian ->
- class == working and name_region == bohemian:
-> cg_surnames_working_bohemian ->
- class == working and name_region == hungarian:
-> cg_surnames_working_hungarian ->
- class == working and name_region == eastern:
-> cg_surnames_working_eastern ->
- class == working and name_region == southern:
-> cg_surnames_working_southern ->
- else:
-> cg_surnames_noble_austrian ->
}
->->
@@ -0,0 +1,46 @@
// ============================================================================
// EIBENREITH CHARACTER GENERATOR SHARED NAME HELPERS
// ============================================================================
// Only use these tunnels where the same text would otherwise be repeated inside
// generated name/surname Weaves. Do not use helper tunnels for one-off static
// form sections.
// ============================================================================
=== cg_after_given_names_written ===
Du schreibst die Vornamen aus: _{given_names}_.
{given_names_meaning_fragment}. {given_names_combination_note}
Die Namen stehen nun vollständig auf dem Papier. Aber kein Mensch hört innerlich auf alle Namen zugleich.
->->
=== cg_after_common_name_chosen ===
{common_name} ist der Name, auf den du zuerst reagierst.
Nicht der Name für Akten, Vorstellungen und Besuchskarten. Der andere. Der, bei dem du dich umdrehst, bevor du weißt, ob du gesehen werden willst.
->->
=== cg_after_surname_written ===
Du setzt darunter: _{surname_written_form}_.
{surname_comment}
->->
=== cg_after_birthdate_written ===
Du trägst ein: _{birthdate}_.
{age} Jahre. Alt genug, um allein mit einem Offizier erster Klasse durchs Land geschickt zu werden, und doch nicht alt genug, um vor dem Gesetz ganz dir selbst zu gehören.
Sternzeichen {zodiac}: {zodiac_note}.
{zodiac_comment}
Kein Feld dafür im Formular. Du brauchst nicht daran zu glauben, aber darüber Bescheid zu wissen, ist wichtig für deine Glaubwürdigkeit in genau jenen Kreisen, zu denen dein Ruf als Medium dir Zugang verschafft.
->->
=== cg_after_birthplace_written ===
Du füllst aus: _{birthplace}_.
{birthplace_note}.
{birthplace_reflection}
->->
+116
View File
@@ -0,0 +1,116 @@
// ============================================================================
// EIBENREITH 00 CHARACTER RELATIONSHIPS
// ============================================================================
// Include after eibenreith_00_helpers.ink and before all chapter files.
//
// This file contains only relationship variable definitions and starting values.
// It deliberately contains no helper functions, no route counters, no LIST
// declarations, and no scene logic.
//
// Relationship variables use this naming convention:
//
// normalized_character_id + "_" + value_name
//
// The ten standard values follow the Scarlet-Hollow-style impression model:
//
// agreeable / adversarial
// open / closed
// bold / passive
// reliable / unreliable
// insightful / dull
//
// These are separate counters, not signed opposites. A character can experience
// Valerie as both open and closed, both reliable and unreliable, depending on
// the history of choices.
//
// Do not add per-character custom dimensions. If a value cannot be expressed
// through these axes, model it as an encounter/state LIST or in prose.
// ============================================================================
// ============================================================================
// AMALIA
// ============================================================================
// Relationship meaning:
// These values describe how Amalia experiences Valerie.
// At story start, Amalia has not yet encountered Valerie directly, so all
// standard impressions begin at 0.
// ============================================================================
VAR amalia_agreeable = 0
VAR amalia_adversarial = 0
VAR amalia_open = 0
VAR amalia_closed = 0
VAR amalia_bold = 0
VAR amalia_passive = 0
VAR amalia_reliable = 0
VAR amalia_unreliable = 0
VAR amalia_insightful = 0
VAR amalia_dull = 0
// ============================================================================
// VIKTOR
// ============================================================================
// Relationship meaning:
// These values describe how Viktor experiences Valerie.
// Viktor begins with a slight professional reserve and a mild assumption that
// Valerie is an official responsibility rather than a fully trusted partner.
// ============================================================================
VAR viktor_location = loc_train_compartment
VAR viktor_agreeable = 0
VAR viktor_adversarial = 0
VAR viktor_open = 0
VAR viktor_closed = 1
VAR viktor_bold = 0
VAR viktor_passive = 0
VAR viktor_reliable = 0
VAR viktor_unreliable = 0
VAR viktor_insightful = 0
VAR viktor_dull = 0
// ============================================================================
// HOHENREITH FAMILY — RESERVED IDS
// ============================================================================
// Add these only when the characters are named and mechanically active.
// Keep reserved ids stable once introduced, because they become part of save
// data and authoring convention.
//
// Suggested ids:
// graf_...
// graefin_...
// tante_...
// amalias_brother_...
// amalias_mother_...
//
// Do not define counters for every named NPC unless the game actually branches,
// gates content, or changes tone based on their relationship to Valerie.
// ============================================================================
// ============================================================================
// HOUSEHOLD / SERVICE WORLD — RESERVED IDS
// ============================================================================
// Suggested ids:
// steward_...
// housekeeper_...
// maid_...
// valet_...
// coachman_...
// cook_...
// ============================================================================
// ============================================================================
// VILLAGE / CHURCH / OFFICIALS — RESERVED IDS
// ============================================================================
// Suggested ids:
// priest_...
// station_master_...
// teacher_...
// doctor_...
// mayor_...
// forester_...
// ============================================================================
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,191 @@
// Generated given-name package choices for Bürgertum / deutsch-österreichisch
=== cg_given_names_middle_austrian ===
* [__Heiße__: Anna Maria.]
~ given_names = "Anna Maria"
~ given_names_key = "anna_maria"
~ given_names_meaning_fragment = "Anna geht auf das hebräische Hannah zurück und trägt die Bedeutung Gnade. Maria verweist im katholischen Österreich zuerst auf die Gottesmutter, auch wenn die ältere Herkunft des Namens unsicher bleibt"
~ given_names_combination_note = "Die Verbindung ist nicht zufällig fromm. Sie stellt dich in eine lesbare katholische Ordnung, ohne einen Adelstitel dafür zu brauchen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Anni.]
~ common_name = "Anni"
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Josepha Therese.]
~ given_names = "Josepha Therese"
~ given_names_key = "josepha_therese"
~ given_names_meaning_fragment = "Josepha ist die weibliche Form von Joseph und bedeutet nach hebräischer Überlieferung Gott fügt hinzu. Therese ist in der Herkunft unsicher, im österreichischen Gebrauch aber untrennbar mit theresianischer Ordnung verbunden"
~ given_names_combination_note = "Die Kombination macht aus Frömmigkeit und Staatsnähe eine Art bürgerliches Programm."
-> cg_after_given_names_written ->
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
* * [__Höre auf__: Therese.]
~ common_name = "Therese"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Clara Eleonore.]
~ given_names = "Clara Eleonore"
~ given_names_key = "clara_eleonore"
~ given_names_meaning_fragment = "Clara leitet sich von lateinisch clarus ab, hell und berühmt. Eleonore kam über höfische Namensformen in den deutschen Sprachraum, die genaue Herkunft bleibt umstritten"
~ given_names_combination_note = "Auf dem Formular wirkt die Wahl gebildet, aber nicht überladen. Sie zeigt Anspruch, ohne ihn laut auszusprechen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Clara.]
~ common_name = "Clara"
* * [__Höre auf__: Clari.]
~ common_name = "Clari"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Franziska Barbara.]
~ given_names = "Franziska Barbara"
~ given_names_key = "franziska_barbara"
~ given_names_meaning_fragment = "Franziska ist die weibliche Form von Franciscus und bezeichnet ursprünglich die Fränkische oder Französische. Barbara geht auf griechisch barbaros zurück, die Fremde"
~ given_names_combination_note = "Die beiden Bestandteile tragen mehr Abstand in sich, als eine Kanzleizeile zeigt. Herkunft und Fremdheit stehen geordnet nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
* * [__Höre auf__: Barbara.]
~ common_name = "Barbara"
* * [__Höre auf__: Barbl.]
~ common_name = "Barbl"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Katharina Johanna.]
~ given_names = "Katharina Johanna"
~ given_names_key = "katharina_johanna"
~ given_names_meaning_fragment = "Katharina wurde früh mit griechisch katharos, rein, verbunden. Johanna ist die weibliche Form von Johannes und bedeutet Gott ist gnädig"
~ given_names_combination_note = "Das ist eine ernste Wahl. Sie trägt Frömmigkeit und Anspruch so ordentlich, dass beides wie Erziehung aussieht."
-> cg_after_given_names_written ->
* * [__Höre auf__: Katharina.]
~ common_name = "Katharina"
* * [__Höre auf__: Kathi.]
~ common_name = "Kathi"
* * [__Höre auf__: Johanna.]
~ common_name = "Johanna"
* * [__Höre auf__: Hanni.]
~ common_name = "Hanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Elisabeth Sophie.]
~ given_names = "Elisabeth Sophie"
~ given_names_key = "elisabeth_sophie"
~ given_names_meaning_fragment = "Elisabeth geht auf das Hebräische zurück und wird als Gott ist Fülle oder Gott hat geschworen gedeutet. Sophie stammt von griechisch sophia, Weisheit"
~ given_names_combination_note = "Die Verbindung erlaubt Würde und Bildung in einer Zeile. Genau solche Zeichen kann ein bürgerliches Haus sorgfältig setzen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Elisabeth.]
~ common_name = "Elisabeth"
* * [__Höre auf__: Liesl.]
~ common_name = "Liesl"
* * [__Höre auf__: Sophie.]
~ common_name = "Sophie"
* * [__Höre auf__: Sopherl.]
~ common_name = "Sopherl"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Cäcilie Amalie.]
~ given_names = "Cäcilie Amalie"
~ given_names_key = "caecilie_amalie"
~ given_names_meaning_fragment = "Cäcilie geht auf den römischen Geschlechternamen Caecilius zurück und wurde durch die Heilige der Musik besonders lesbar. Amalie stammt aus germanischer Namenbildung und verweist auf Arbeit oder Tatkraft"
~ given_names_combination_note = "Damit stehen Kunst und Nützlichkeit nebeneinander. Beides darf eine Frau besitzen, solange sie es richtig dosiert."
-> cg_after_given_names_written ->
* * [__Höre auf__: Cäcilie.]
~ common_name = "Cäcilie"
* * [__Höre auf__: Cilli.]
~ common_name = "Cilli"
* * [__Höre auf__: Amalie.]
~ common_name = "Amalie"
* * [__Höre auf__: Mali.]
~ common_name = "Mali"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Magdalena Rosa.]
~ given_names = "Magdalena Rosa"
~ given_names_key = "magdalena_rosa"
~ given_names_meaning_fragment = "Magdalena bezeichnet die Frau aus Magdala und ist durch Maria Magdalena geprägt. Rosa ist lateinisch die Rose"
~ given_names_combination_note = "Die Wahl enthält Buße und Blüte, Kirche und Zierde. Auf Papier bleibt das ordentlich, doch ganz harmlos ist es nicht."
-> cg_after_given_names_written ->
* * [__Höre auf__: Magdalena.]
~ common_name = "Magdalena"
* * [__Höre auf__: Leni.]
~ common_name = "Leni"
* * [__Höre auf__: Rosa.]
~ common_name = "Rosa"
* * [__Höre auf__: Rosi.]
~ common_name = "Rosi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Hermine Pauline.]
~ given_names = "Hermine Pauline"
~ given_names_key = "hermine_pauline"
~ given_names_meaning_fragment = "Hermine gehört zur Namensfamilie um Hermann und trägt Heer und Mann in der älteren Bedeutung. Pauline ist die weibliche Form von Paulus, dem Kleinen oder Geringen"
~ given_names_combination_note = "Die Eintragung legt Stärke und Bescheidenheit eng zusammen. Das ist kein Widerspruch, sondern eine Erziehungsmethode."
-> cg_after_given_names_written ->
* * [__Höre auf__: Hermine.]
~ common_name = "Hermine"
* * [__Höre auf__: Hermi.]
~ common_name = "Hermi"
* * [__Höre auf__: Pauline.]
~ common_name = "Pauline"
* * [__Höre auf__: Pauli.]
~ common_name = "Pauli"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Caroline Mathilde.]
~ given_names = "Caroline Mathilde"
~ given_names_key = "caroline_mathilde"
~ given_names_meaning_fragment = "Caroline ist die weibliche Form von Karl und wird mit freier Mensch verbunden. Mathilde geht auf germanische Bestandteile für Macht und Kampf zurück"
~ given_names_combination_note = "Freiheit und Kampf stehen da, ohne ungehörig zu wirken. Ein Formular kann mehr verraten, als es zu fragen vorgibt."
-> cg_after_given_names_written ->
* * [__Höre auf__: Caroline.]
~ common_name = "Caroline"
* * [__Höre auf__: Lina.]
~ common_name = "Lina"
* * [__Höre auf__: Mathilde.]
~ common_name = "Mathilde"
* * [__Höre auf__: Tilli.]
~ common_name = "Tilli"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,191 @@
// Generated given-name package choices for Bürgertum / böhmisch-mährisch
=== cg_given_names_middle_bohemian ===
* [__Heiße__: Marie Anna.]
~ given_names = "Marie Anna"
~ given_names_key = "marie_anna"
~ given_names_meaning_fragment = "Marie verweist im katholischen Gebrauch zuerst auf die Gottesmutter. Anna geht auf hebräisch Hannah zurück und trägt die Bedeutung Gnade"
~ given_names_combination_note = "Die Eintragung stellt Frömmigkeit und schlichte Verlässlichkeit nebeneinander, ohne dabei nach Adel zu greifen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Marie.]
~ common_name = "Marie"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Anka.]
~ common_name = "Anka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Josefa Antonie.]
~ given_names = "Josefa Antonie"
~ given_names_key = "josefa_antonie"
~ given_names_meaning_fragment = "Josefa ist die weibliche Form von Joseph und bedeutet nach hebräischer Überlieferung Gott fügt hinzu. Antonie gehört zur römischen Namensfamilie der Antonier"
~ given_names_combination_note = "Damit stehen biblische Ordnung und römische Form in einer bürgerlich verwertbaren Zeile."
-> cg_after_given_names_written ->
* * [__Höre auf__: Josefa.]
~ common_name = "Josefa"
* * [__Höre auf__: Pepička.]
~ common_name = "Pepička"
* * [__Höre auf__: Antonie.]
~ common_name = "Antonie"
* * [__Höre auf__: Tonka.]
~ common_name = "Tonka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Františka Terezie.]
~ given_names = "Františka Terezie"
~ given_names_key = "frantiska_terezie"
~ given_names_meaning_fragment = "Františka ist die tschechische Form von Franziska und bezeichnet ursprünglich die Fränkische oder Französische. Terezie entspricht Therese, deren Herkunft unsicher bleibt"
~ given_names_combination_note = "Die Wahl verbindet sprachliche Zugehörigkeit mit einem Namen, den auch österreichische Amtsaugen sofort einordnen können."
-> cg_after_given_names_written ->
* * [__Höre auf__: Františka.]
~ common_name = "Františka"
* * [__Höre auf__: Fanynka.]
~ common_name = "Fanynka"
* * [__Höre auf__: Terezie.]
~ common_name = "Terezie"
* * [__Höre auf__: Terezka.]
~ common_name = "Terezka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Kateřina Johanna.]
~ given_names = "Kateřina Johanna"
~ given_names_key = "katerina_johanna"
~ given_names_meaning_fragment = "Kateřina entspricht Katharina und wurde früh mit griechisch katharos, rein, verbunden. Johanna ist die weibliche Form von Johannes und bedeutet Gott ist gnädig"
~ given_names_combination_note = "Die beiden Bestandteile bleiben fromm und gebildet, ohne die böhmische Form des ersten Namens zu verstecken."
-> cg_after_given_names_written ->
* * [__Höre auf__: Kateřina.]
~ common_name = "Kateřina"
* * [__Höre auf__: Katka.]
~ common_name = "Katka"
* * [__Höre auf__: Johanna.]
~ common_name = "Johanna"
* * [__Höre auf__: Hanni.]
~ common_name = "Hanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ludmilla Clara.]
~ given_names = "Ludmilla Clara"
~ given_names_key = "ludmilla_clara"
~ given_names_meaning_fragment = "Ludmilla geht auf slawische Bestandteile für Volk und Liebe oder Gunst zurück. Clara leitet sich von lateinisch clarus ab, hell und berühmt"
~ given_names_combination_note = "Eine slawische Heiligentradition und ein lateinischer Bildungsname stehen hier sehr bewusst nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ludmilla.]
~ common_name = "Ludmilla"
* * [__Höre auf__: Mila.]
~ common_name = "Mila"
* * [__Höre auf__: Clara.]
~ common_name = "Clara"
* * [__Höre auf__: Clari.]
~ common_name = "Clari"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Božena Eliška.]
~ given_names = "Božena Eliška"
~ given_names_key = "bozena_eliska"
~ given_names_meaning_fragment = "Božena leitet sich vom slawischen Wort für Gott her und wird als die von Gott Gegebene verstanden. Eliška ist die tschechische Form von Elisabeth"
~ given_names_combination_note = "Die Eintragung lässt keinen Zweifel, dass Bildung hier nicht nur aus Wien kommen muss."
-> cg_after_given_names_written ->
* * [__Höre auf__: Božena.]
~ common_name = "Božena"
* * [__Höre auf__: Božka.]
~ common_name = "Božka"
* * [__Höre auf__: Eliška.]
~ common_name = "Eliška"
* * [__Höre auf__: Eli.]
~ common_name = "Eli"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Zdenka Marie.]
~ given_names = "Zdenka Marie"
~ given_names_key = "zdenka_marie"
~ given_names_meaning_fragment = "Zdenka gehört zu westslawischen Namen um Zdeslav und verwandte Formen. Marie verweist im katholischen Gebrauch zuerst auf die Gottesmutter"
~ given_names_combination_note = "Die erste Hälfte bewahrt eine böhmische Signatur, die zweite macht sie für katholische Formulare vertraut."
-> cg_after_given_names_written ->
* * [__Höre auf__: Zdenka.]
~ common_name = "Zdenka"
* * [__Höre auf__: Zdeni.]
~ common_name = "Zdeni"
* * [__Höre auf__: Marie.]
~ common_name = "Marie"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Růžena Barbara.]
~ given_names = "Růžena Barbara"
~ given_names_key = "ruzena_barbara"
~ given_names_meaning_fragment = "Růžena ist mit der Rose verbunden. Barbara geht auf griechisch barbaros zurück und bedeutet die Fremde"
~ given_names_combination_note = "Blüte und Fremdheit sind keine zufällige Paarung. Im Formular bleiben sie gezähmt, aber nicht ausgelöscht."
-> cg_after_given_names_written ->
* * [__Höre auf__: Růžena.]
~ common_name = "Růžena"
* * [__Höre auf__: Růža.]
~ common_name = "Růža"
* * [__Höre auf__: Barbara.]
~ common_name = "Barbara"
* * [__Höre auf__: Barča.]
~ common_name = "Barča"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Julie Karolina.]
~ given_names = "Julie Karolina"
~ given_names_key = "julie_karolina"
~ given_names_meaning_fragment = "Julie gehört zur römischen Namensfamilie der Julier. Karolina ist die weibliche Form von Karl und wird mit freier Mensch verbunden"
~ given_names_combination_note = "Römische Herkunft und bürgerliche Freiheitsbedeutung ergeben eine Zeile, die gebildet wirkt, ohne sich zu überheben."
-> cg_after_given_names_written ->
* * [__Höre auf__: Julie.]
~ common_name = "Julie"
* * [__Höre auf__: Julka.]
~ common_name = "Julka"
* * [__Höre auf__: Karolina.]
~ common_name = "Karolina"
* * [__Höre auf__: Lina.]
~ common_name = "Lina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Albína Amalie.]
~ given_names = "Albína Amalie"
~ given_names_key = "albina_amalie"
~ given_names_meaning_fragment = "Albína geht auf lateinisch albus zurück, weiß oder hell. Amalie stammt aus germanischer Namenbildung und verweist auf Arbeit oder Tatkraft"
~ given_names_combination_note = "Die Kombination gibt der hellen, fast klösterlichen Form einen sehr praktischen zweiten Halt."
-> cg_after_given_names_written ->
* * [__Höre auf__: Albína.]
~ common_name = "Albína"
* * [__Höre auf__: Bína.]
~ common_name = "Bína"
* * [__Höre auf__: Amalie.]
~ common_name = "Amalie"
* * [__Höre auf__: Amálka.]
~ common_name = "Amálka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,191 @@
// Generated given-name package choices for Bürgertum / galizisch-bukowinisch
=== cg_given_names_middle_eastern ===
* [__Heiße__: Maria Anna.]
~ given_names = "Maria Anna"
~ given_names_key = "maria_anna"
~ given_names_meaning_fragment = "Maria verweist im katholischen Gebrauch zuerst auf die Gottesmutter. Anna geht auf hebräisch Hannah zurück und trägt die Bedeutung Gnade"
~ given_names_combination_note = "Die Verbindung ist in Galizien wie in Wien lesbar. Sie macht Frömmigkeit zu einem gemeinsamen Formularzeichen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Marynia.]
~ common_name = "Marynia"
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Ania.]
~ common_name = "Ania"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Zofia Jadwiga.]
~ given_names = "Zofia Jadwiga"
~ given_names_key = "zofia_jadwiga"
~ given_names_meaning_fragment = "Zofia stammt von griechisch sophia, Weisheit. Jadwiga ist die polnische Form von Hedwig und gehört zur germanischen Namenbildung um Kampf und Streit"
~ given_names_combination_note = "Weisheit und ein alter Herrscherinnenname machen die Zeile deutlich polnisch, aber nicht provinziell."
-> cg_after_given_names_written ->
* * [__Höre auf__: Zofia.]
~ common_name = "Zofia"
* * [__Höre auf__: Zosia.]
~ common_name = "Zosia"
* * [__Höre auf__: Jadwiga.]
~ common_name = "Jadwiga"
* * [__Höre auf__: Jadzia.]
~ common_name = "Jadzia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Katarzyna Antonina.]
~ given_names = "Katarzyna Antonina"
~ given_names_key = "katarzyna_antonina"
~ given_names_meaning_fragment = "Katarzyna entspricht Katharina und wurde früh mit griechisch katharos, rein, verbunden. Antonina gehört zur römischen Namensfamilie der Antonier"
~ given_names_combination_note = "Die erste Form hält die polnische Herkunft fest, die zweite öffnet die Zeile zur lateinischen Bildung."
-> cg_after_given_names_written ->
* * [__Höre auf__: Katarzyna.]
~ common_name = "Katarzyna"
* * [__Höre auf__: Kasia.]
~ common_name = "Kasia"
* * [__Höre auf__: Antonina.]
~ common_name = "Antonina"
* * [__Höre auf__: Tosia.]
~ common_name = "Tosia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Agnieszka Helena.]
~ given_names = "Agnieszka Helena"
~ given_names_key = "agnieszka_helena"
~ given_names_meaning_fragment = "Agnieszka ist die polnische Form von Agnes und wird mit griechisch hagnos, rein oder keusch, verbunden. Helena geht auf griechisch helene zurück, meist als die Leuchtende gedeutet"
~ given_names_combination_note = "Die Verbindung stellt Heiligkeit und Helligkeit nebeneinander, ohne dafür eine deutsche Form anzunehmen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Agnieszka.]
~ common_name = "Agnieszka"
* * [__Höre auf__: Aga.]
~ common_name = "Aga"
* * [__Höre auf__: Helena.]
~ common_name = "Helena"
* * [__Höre auf__: Hela.]
~ common_name = "Hela"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Stanisława Józefa.]
~ given_names = "Stanisława Józefa"
~ given_names_key = "stanislawa_jozefa"
~ given_names_meaning_fragment = "Stanisława geht auf slawische Bestandteile für Stehen oder Werden und Ruhm zurück. Józefa ist die polnische weibliche Form von Joseph"
~ given_names_combination_note = "Standhaftigkeit und biblische Fügung ergeben eine ernste, bewusst katholische Eintragung."
-> cg_after_given_names_written ->
* * [__Höre auf__: Stanisława.]
~ common_name = "Stanisława"
* * [__Höre auf__: Stasia.]
~ common_name = "Stasia"
* * [__Höre auf__: Józefa.]
~ common_name = "Józefa"
* * [__Höre auf__: Józia.]
~ common_name = "Józia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Bronisława Karolina.]
~ given_names = "Bronisława Karolina"
~ given_names_key = "bronislawa_karolina"
~ given_names_meaning_fragment = "Bronisława verbindet slawische Bestandteile für Schutz und Ruhm. Karolina ist die weibliche Form von Karl und wird mit freier Mensch verbunden"
~ given_names_combination_note = "Die Zeile hält eine slawische Ehrformel und eine westliche Bildungsform zusammen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Bronisława.]
~ common_name = "Bronisława"
* * [__Höre auf__: Bronia.]
~ common_name = "Bronia"
* * [__Höre auf__: Karolina.]
~ common_name = "Karolina"
* * [__Höre auf__: Lina.]
~ common_name = "Lina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Aniela Marianna.]
~ given_names = "Aniela Marianna"
~ given_names_key = "aniela_marianna"
~ given_names_meaning_fragment = "Aniela geht auf lateinisch angelus und griechisch angelos zurück, Bote oder Engel. Marianna verbindet Maria mit Anna"
~ given_names_combination_note = "Das ist eine ausgesprochen katholische Zeile, aber sie bleibt mehr Familienfrömmigkeit als Kloster."
-> cg_after_given_names_written ->
* * [__Höre auf__: Aniela.]
~ common_name = "Aniela"
* * [__Höre auf__: Anielka.]
~ common_name = "Anielka"
* * [__Höre auf__: Marianna.]
~ common_name = "Marianna"
* * [__Höre auf__: Marynia.]
~ common_name = "Marynia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Tekla Salomea.]
~ given_names = "Tekla Salomea"
~ given_names_key = "tekla_salomea"
~ given_names_meaning_fragment = "Tekla geht auf griechisch Theokleia zurück, Gottes Ruhm. Salomea gehört zur biblischen Namensfamilie um Frieden"
~ given_names_combination_note = "Gottesruhm und Frieden bilden eine streng religiöse Kombination, die im Osten der Monarchie vertraut wirkt."
-> cg_after_given_names_written ->
* * [__Höre auf__: Tekla.]
~ common_name = "Tekla"
* * [__Höre auf__: Teklunia.]
~ common_name = "Teklunia"
* * [__Höre auf__: Salomea.]
~ common_name = "Salomea"
* * [__Höre auf__: Sala.]
~ common_name = "Sala"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Cecylia Leokadia.]
~ given_names = "Cecylia Leokadia"
~ given_names_key = "cecylia_leokadia"
~ given_names_meaning_fragment = "Cecylia geht auf den römischen Geschlechternamen Caecilius zurück. Leokadia stammt aus griechischer Namenbildung und wird mit hell oder glänzend und Sorge oder Pflege verbunden"
~ given_names_combination_note = "Die Eintragung ist gelehrt, aber nicht wienerisch. Genau darin liegt ihr sozialer Wert."
-> cg_after_given_names_written ->
* * [__Höre auf__: Cecylia.]
~ common_name = "Cecylia"
* * [__Höre auf__: Cesia.]
~ common_name = "Cesia"
* * [__Höre auf__: Leokadia.]
~ common_name = "Leokadia"
* * [__Höre auf__: Lodzia.]
~ common_name = "Lodzia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ludwika Melania.]
~ given_names = "Ludwika Melania"
~ given_names_key = "ludwika_melania"
~ given_names_meaning_fragment = "Ludwika ist die polnische weibliche Form von Ludwig und verbindet Ruhm mit Kampf. Melania geht auf griechisch melas zurück, schwarz oder dunkel"
~ given_names_combination_note = "Ruhm, Kampf und Dunkelheit sind ungewöhnlich deutliche Bedeutungen für ein so ordentliches Formularfeld."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ludwika.]
~ common_name = "Ludwika"
* * [__Höre auf__: Ludka.]
~ common_name = "Ludka"
* * [__Höre auf__: Melania.]
~ common_name = "Melania"
* * [__Höre auf__: Mela.]
~ common_name = "Mela"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,191 @@
// Generated given-name package choices for Bürgertum / ungarisch
=== cg_given_names_middle_hungarian ===
* [__Heiße__: Mária Erzsébet.]
~ given_names = "Mária Erzsébet"
~ given_names_key = "maria_erzsebet"
~ given_names_meaning_fragment = "Mária verweist im katholischen Gebrauch zuerst auf die Gottesmutter. Erzsébet ist die ungarische Form von Elisabeth und geht auf eine hebräische Gottesformel zurück"
~ given_names_combination_note = "Die Zeile bleibt katholisch lesbar, aber sie tut es in ungarischer Form."
-> cg_after_given_names_written ->
* * [__Höre auf__: Mária.]
~ common_name = "Mária"
* * [__Höre auf__: Mari.]
~ common_name = "Mari"
* * [__Höre auf__: Erzsébet.]
~ common_name = "Erzsébet"
* * [__Höre auf__: Erzsi.]
~ common_name = "Erzsi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ilona Katalin.]
~ given_names = "Ilona Katalin"
~ given_names_key = "ilona_katalin"
~ given_names_meaning_fragment = "Ilona gilt als ungarische Form von Helena. Katalin entspricht Katharina und wurde früh mit griechisch katharos, rein, verbunden"
~ given_names_combination_note = "Helligkeit und Reinheit stehen hier nicht deutsch, sondern selbstverständlich ungarisch im Formular."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ilona.]
~ common_name = "Ilona"
* * [__Höre auf__: Ilonka.]
~ common_name = "Ilonka"
* * [__Höre auf__: Katalin.]
~ common_name = "Katalin"
* * [__Höre auf__: Kati.]
~ common_name = "Kati"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Margit Júlia.]
~ given_names = "Margit Júlia"
~ given_names_key = "margit_julia"
~ given_names_meaning_fragment = "Margit ist die ungarische Form von Margarete und geht auf griechisch margarites, Perle, zurück. Júlia gehört zur römischen Namensfamilie der Julier"
~ given_names_combination_note = "Eine Heiligen- und eine römische Bildungslinie reichen für gesellschaftliche Lesbarkeit völlig aus."
-> cg_after_given_names_written ->
* * [__Höre auf__: Margit.]
~ common_name = "Margit"
* * [__Höre auf__: Margitka.]
~ common_name = "Margitka"
* * [__Höre auf__: Júlia.]
~ common_name = "Júlia"
* * [__Höre auf__: Juli.]
~ common_name = "Juli"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Róza Gizella.]
~ given_names = "Róza Gizella"
~ given_names_key = "roza_gizella"
~ given_names_meaning_fragment = "Róza geht auf lateinisch rosa, Rose, zurück. Gizella ist die ungarische Form von Gisela und stammt aus germanischer Namenbildung um Geisel oder Bürgschaft"
~ given_names_combination_note = "Zierde und alte Verpflichtung stehen dicht beisammen. Das Formular macht daraus Ordnung."
-> cg_after_given_names_written ->
* * [__Höre auf__: Róza.]
~ common_name = "Róza"
* * [__Höre auf__: Rózsi.]
~ common_name = "Rózsi"
* * [__Höre auf__: Gizella.]
~ common_name = "Gizella"
* * [__Höre auf__: Gizi.]
~ common_name = "Gizi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Sarolta Anna.]
~ given_names = "Sarolta Anna"
~ given_names_key = "sarolta_anna"
~ given_names_meaning_fragment = "Sarolta ist die ungarische Form von Charlotte und führt letztlich zu Karl, dem freien Menschen. Anna geht auf hebräisch Hannah zurück und bedeutet Gnade"
~ given_names_combination_note = "Freiheit und Gnade werden hier nicht behauptet, sondern als Familienwahl eingetragen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Sarolta.]
~ common_name = "Sarolta"
* * [__Höre auf__: Sári.]
~ common_name = "Sári"
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Anni.]
~ common_name = "Anni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Jolán Klára.]
~ given_names = "Jolán Klára"
~ given_names_key = "jolan_klara"
~ given_names_meaning_fragment = "Jolán ist eine ungarische Namensform, die im 19. Jahrhundert literarisch und national lesbar wurde. Klára leitet sich von lateinisch clarus ab, hell und berühmt"
~ given_names_combination_note = "Die Eintragung verbindet moderne ungarische Selbstbehauptung mit einer alten lateinischen Bildungsform."
-> cg_after_given_names_written ->
* * [__Höre auf__: Jolán.]
~ common_name = "Jolán"
* * [__Höre auf__: Joli.]
~ common_name = "Joli"
* * [__Höre auf__: Klára.]
~ common_name = "Klára"
* * [__Höre auf__: Klári.]
~ common_name = "Klári"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ágnes Zsuzsanna.]
~ given_names = "Ágnes Zsuzsanna"
~ given_names_key = "agnes_zsuzsanna"
~ given_names_meaning_fragment = "Ágnes geht auf Agnes zurück und wird mit griechisch hagnos, rein oder keusch, verbunden. Zsuzsanna ist die ungarische Form von Susanna und bedeutet Lilie"
~ given_names_combination_note = "Die Bedeutung bleibt stark religiös, aber die Formen lassen keinen Zweifel an der ungarischen Herkunft."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ágnes.]
~ common_name = "Ágnes"
* * [__Höre auf__: Ági.]
~ common_name = "Ági"
* * [__Höre auf__: Zsuzsanna.]
~ common_name = "Zsuzsanna"
* * [__Höre auf__: Zsuzsa.]
~ common_name = "Zsuzsa"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Borbála Eszter.]
~ given_names = "Borbála Eszter"
~ given_names_key = "borbala_eszter"
~ given_names_meaning_fragment = "Borbála entspricht Barbara und geht auf griechisch barbaros zurück, die Fremde. Eszter ist die ungarische Form von Esther, deren Herkunft meist persisch gedeutet wird"
~ given_names_combination_note = "Fremdheit und biblische Hofgeschichte ergeben eine Zeile, die mehr Welt enthält, als ein Formular verlangt."
-> cg_after_given_names_written ->
* * [__Höre auf__: Borbála.]
~ common_name = "Borbála"
* * [__Höre auf__: Bori.]
~ common_name = "Bori"
* * [__Höre auf__: Eszter.]
~ common_name = "Eszter"
* * [__Höre auf__: Eszti.]
~ common_name = "Eszti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Etelka Aranka.]
~ given_names = "Etelka Aranka"
~ given_names_key = "etelka_aranka"
~ given_names_meaning_fragment = "Etelka wurde im ungarischen Sprachraum literarisch geprägt und mit nationaler Namensmode verbunden. Aranka ist eine ungarische Bildung zu arany, Gold"
~ given_names_combination_note = "Die Wahl ist ungewöhnlich bewusst. Sie trägt weniger Kirchenbuch als ungarische Gegenwart in die Zeile."
-> cg_after_given_names_written ->
* * [__Höre auf__: Etelka.]
~ common_name = "Etelka"
* * [__Höre auf__: Etus.]
~ common_name = "Etus"
* * [__Höre auf__: Aranka.]
~ common_name = "Aranka"
* * [__Höre auf__: Ari.]
~ common_name = "Ari"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Amália Lujza.]
~ given_names = "Amália Lujza"
~ given_names_key = "amalia_lujza"
~ given_names_meaning_fragment = "Amália stammt aus germanischer Namenbildung und verweist auf Arbeit oder Tatkraft. Lujza ist die ungarische Form von Luise und gehört zur Namensfamilie um Ludwig, Ruhm und Kampf"
~ given_names_combination_note = "Tatkraft, Ruhm und Kampf bleiben höflich verhüllt, aber sie stehen dennoch im Formular."
-> cg_after_given_names_written ->
* * [__Höre auf__: Amália.]
~ common_name = "Amália"
* * [__Höre auf__: Málcsi.]
~ common_name = "Málcsi"
* * [__Höre auf__: Lujza.]
~ common_name = "Lujza"
* * [__Höre auf__: Lujzi.]
~ common_name = "Lujzi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,191 @@
// Generated given-name package choices for Bürgertum / südlich-adriatisch
=== cg_given_names_middle_southern ===
* [__Heiße__: Maria Teresa.]
~ given_names = "Maria Teresa"
~ given_names_key = "maria_teresa"
~ given_names_meaning_fragment = "Maria verweist im katholischen Gebrauch zuerst auf die Gottesmutter. Teresa entspricht Therese, deren Herkunft unsicher bleibt, im Habsburgerraum aber stark mit Theresia verbunden ist"
~ given_names_combination_note = "Die Zeile ist katholisch und österreichisch lesbar, ohne die südliche Form aufzugeben."
-> cg_after_given_names_written ->
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mara.]
~ common_name = "Mara"
* * [__Höre auf__: Teresa.]
~ common_name = "Teresa"
* * [__Höre auf__: Teresina.]
~ common_name = "Teresina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Giulia Antonia.]
~ given_names = "Giulia Antonia"
~ given_names_key = "giulia_antonia"
~ given_names_meaning_fragment = "Giulia gehört zur römischen Namensfamilie der Julier. Antonia gehört zur römischen Namensfamilie der Antonier"
~ given_names_combination_note = "Zwei römische Linien machen die Eintragung gebildet, ohne sie deutsch oder höfisch verkleiden zu müssen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Giulia.]
~ common_name = "Giulia"
* * [__Höre auf__: Giulietta.]
~ common_name = "Giulietta"
* * [__Höre auf__: Antonia.]
~ common_name = "Antonia"
* * [__Höre auf__: Tonina.]
~ common_name = "Tonina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Giuseppina Bianca.]
~ given_names = "Giuseppina Bianca"
~ given_names_key = "giuseppina_bianca"
~ given_names_meaning_fragment = "Giuseppina ist die italienische weibliche Form von Joseph und bedeutet nach hebräischer Überlieferung Gott fügt hinzu. Bianca geht auf italienisch bianco zurück, weiß"
~ given_names_combination_note = "Biblische Fügung und helle Farbbedeutung stehen hier in einer Form, die eher nach Süden als nach Wien weist."
-> cg_after_given_names_written ->
* * [__Höre auf__: Giuseppina.]
~ common_name = "Giuseppina"
* * [__Höre auf__: Pina.]
~ common_name = "Pina"
* * [__Höre auf__: Bianca.]
~ common_name = "Bianca"
* * [__Höre auf__: Bia.]
~ common_name = "Bia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Emilia Carolina.]
~ given_names = "Emilia Carolina"
~ given_names_key = "emilia_carolina"
~ given_names_meaning_fragment = "Emilia gehört zur römischen Namensfamilie der Aemilier. Carolina ist die weibliche Form von Karl und wird mit freier Mensch verbunden"
~ given_names_combination_note = "Römische Herkunft und Freiheitsbedeutung fügen sich zu einer bürgerlichen Zeile, die mehr Bildung als Besitz zeigt."
-> cg_after_given_names_written ->
* * [__Höre auf__: Emilia.]
~ common_name = "Emilia"
* * [__Höre auf__: Emi.]
~ common_name = "Emi"
* * [__Höre auf__: Carolina.]
~ common_name = "Carolina"
* * [__Höre auf__: Lina.]
~ common_name = "Lina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Lucia Margherita.]
~ given_names = "Lucia Margherita"
~ given_names_key = "lucia_margherita"
~ given_names_meaning_fragment = "Lucia leitet sich von lateinisch lux, Licht, ab. Margherita geht auf griechisch margarites zurück, Perle"
~ given_names_combination_note = "Licht und Perle sind keine bloßen Zierden. Auf einem Formular zeigen sie eine Familie, die Bedeutung kennt."
-> cg_after_given_names_written ->
* * [__Höre auf__: Lucia.]
~ common_name = "Lucia"
* * [__Höre auf__: Luci.]
~ common_name = "Luci"
* * [__Höre auf__: Margherita.]
~ common_name = "Margherita"
* * [__Höre auf__: Rita.]
~ common_name = "Rita"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Caterina Paolina.]
~ given_names = "Caterina Paolina"
~ given_names_key = "caterina_paolina"
~ given_names_meaning_fragment = "Caterina entspricht Katharina und wurde früh mit griechisch katharos, rein, verbunden. Paolina ist die weibliche Form von Paulus, dem Kleinen oder Geringen"
~ given_names_combination_note = "Reinheit und Bescheidenheit sind hier sehr deutlich gesetzt. Das ist Frömmigkeit als soziale Grammatik."
-> cg_after_given_names_written ->
* * [__Höre auf__: Caterina.]
~ common_name = "Caterina"
* * [__Höre auf__: Rina.]
~ common_name = "Rina"
* * [__Höre auf__: Paolina.]
~ common_name = "Paolina"
* * [__Höre auf__: Pina.]
~ common_name = "Pina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Marija Ana.]
~ given_names = "Marija Ana"
~ given_names_key = "marija_ana"
~ given_names_meaning_fragment = "Marija ist die südslawische Form von Maria. Ana geht auf hebräisch Hannah zurück und trägt die Bedeutung Gnade"
~ given_names_combination_note = "Die Eintragung ist knapp, katholisch und regional eindeutig. Sie braucht keine zweite Erklärung."
-> cg_after_given_names_written ->
* * [__Höre auf__: Marija.]
~ common_name = "Marija"
* * [__Höre auf__: Mara.]
~ common_name = "Mara"
* * [__Höre auf__: Ana.]
~ common_name = "Ana"
* * [__Höre auf__: Anica.]
~ common_name = "Anica"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Jelena Katarina.]
~ given_names = "Jelena Katarina"
~ given_names_key = "jelena_katarina"
~ given_names_meaning_fragment = "Jelena ist die südslawische Form von Helena und wird mit Helligkeit verbunden. Katarina entspricht Katharina und wurde früh mit griechisch katharos, rein, verbunden"
~ given_names_combination_note = "Helligkeit und Reinheit bleiben in südslawischer Form stehen. Das Formular muss damit umgehen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Jelena.]
~ common_name = "Jelena"
* * [__Höre auf__: Jela.]
~ common_name = "Jela"
* * [__Höre auf__: Katarina.]
~ common_name = "Katarina"
* * [__Höre auf__: Kata.]
~ common_name = "Kata"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ivana Terezija.]
~ given_names = "Ivana Terezija"
~ given_names_key = "ivana_terezija"
~ given_names_meaning_fragment = "Ivana ist die weibliche Form von Johannes und bedeutet Gott ist gnädig. Terezija entspricht Therese, deren Herkunft unsicher bleibt"
~ given_names_combination_note = "Die Zeile stellt biblische Gnade neben einen im Habsburgerraum vertrauten Herrscherinnennamen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ivana.]
~ common_name = "Ivana"
* * [__Höre auf__: Iva.]
~ common_name = "Iva"
* * [__Höre auf__: Terezija.]
~ common_name = "Terezija"
* * [__Höre auf__: Rezika.]
~ common_name = "Rezika"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Frančiška Albina.]
~ given_names = "Frančiška Albina"
~ given_names_key = "franciska_albina"
~ given_names_meaning_fragment = "Frančiška ist die südslawische Form von Franziska und bezeichnet ursprünglich die Fränkische oder Französische. Albina geht auf lateinisch albus zurück, weiß oder hell"
~ given_names_combination_note = "Fremde Herkunft und helle lateinische Bedeutung stehen geordnet genug nebeneinander, um amtlich zu wirken."
-> cg_after_given_names_written ->
* * [__Höre auf__: Frančiška.]
~ common_name = "Frančiška"
* * [__Höre auf__: Francka.]
~ common_name = "Francka"
* * [__Höre auf__: Albina.]
~ common_name = "Albina"
* * [__Höre auf__: Bina.]
~ common_name = "Bina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,233 @@
// Generated given-name package choices for Adel / deutsch-österreichisch
=== cg_given_names_noble_austrian ===
* [__Heiße__: Valerie Eleonore Josepha.]
~ given_names = "Valerie Eleonore Josepha"
~ given_names_key = "valerie_eleonore_josepha"
~ given_names_meaning_fragment = "Valerie geht auf lateinisch valere zurück, stark sein oder gesund sein. Eleonore kam über höfische Namensformen in den deutschen Sprachraum. Josepha ist die weibliche Form von Joseph und bedeutet Gott fügt hinzu"
~ given_names_combination_note = "Die Reihe verbindet Kraft, höfische Form und katholische Fügung. Das ist kein Zufall, sondern Standeserziehung in Taufregistern."
-> cg_after_given_names_written ->
* * [__Höre auf__: Valerie.]
~ common_name = "Valerie"
* * [__Höre auf__: Vally.]
~ common_name = "Vally"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
* * [__Höre auf__: Lenchen.]
~ common_name = "Lenchen"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Helene Cäcilie Franziska.]
~ given_names = "Helene Cäcilie Franziska"
~ given_names_key = "helene_caecilie_franziska"
~ given_names_meaning_fragment = "Helene geht auf griechisch helene zurück und wird meist als die Leuchtende gedeutet. Cäcilie stammt vom römischen Geschlechternamen Caecilius. Franziska bezeichnet ursprünglich die Fränkische oder Französische"
~ given_names_combination_note = "Die Eintragung führt griechische, römische und westliche Herkunft geordnet zusammen. Genau so arbeitet ein Haus an seiner Oberfläche."
-> cg_after_given_names_written ->
* * [__Höre auf__: Helene.]
~ common_name = "Helene"
* * [__Höre auf__: Leni.]
~ common_name = "Leni"
* * [__Höre auf__: Cäcilie.]
~ common_name = "Cäcilie"
* * [__Höre auf__: Cilli.]
~ common_name = "Cilli"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Clara Theresia Leopoldine.]
~ given_names = "Clara Theresia Leopoldine"
~ given_names_key = "clara_theresia_leopoldine"
~ given_names_meaning_fragment = "Clara leitet sich von lateinisch clarus ab, hell und berühmt. Theresia entspricht Therese, deren Herkunft unsicher bleibt. Leopoldine ist die weibliche Form von Leopold und verbindet Volk mit Kühnheit"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Clara.]
~ common_name = "Clara"
* * [__Höre auf__: Clari.]
~ common_name = "Clari"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Sophie Eleonore Auguste.]
~ given_names = "Sophie Eleonore Auguste"
~ given_names_key = "sophie_eleonore_auguste"
~ given_names_meaning_fragment = "Sophie stammt von griechisch sophia, Weisheit. Eleonore kam über höfische Namensformen in den deutschen Sprachraum. Auguste geht auf lateinisch augustus zurück, erhaben oder geweiht"
~ given_names_combination_note = "Weisheit, höfische Form und Erhabenheit ergeben eine Taufzeile, die mehr Programm als Zärtlichkeit ist."
-> cg_after_given_names_written ->
* * [__Höre auf__: Sophie.]
~ common_name = "Sophie"
* * [__Höre auf__: Sopherl.]
~ common_name = "Sopherl"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
* * [__Höre auf__: Auguste.]
~ common_name = "Auguste"
* * [__Höre auf__: Gusti.]
~ common_name = "Gusti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Mathilde Josepha Henriette.]
~ given_names = "Mathilde Josepha Henriette"
~ given_names_key = "mathilde_josepha_henriette"
~ given_names_meaning_fragment = "Mathilde geht auf germanische Bestandteile für Macht und Kampf zurück. Josepha ist die weibliche Form von Joseph. Henriette ist die weibliche Form von Heinrich und verweist auf Haus und Herrschaft"
~ given_names_combination_note = "Macht, Fügung und Hausherrschaft stehen da, als seien sie bloß feierliche Familienfrömmigkeit."
-> cg_after_given_names_written ->
* * [__Höre auf__: Mathilde.]
~ common_name = "Mathilde"
* * [__Höre auf__: Tilli.]
~ common_name = "Tilli"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
* * [__Höre auf__: Henriette.]
~ common_name = "Henriette"
* * [__Höre auf__: Jetti.]
~ common_name = "Jetti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Therese Valerie Franziska.]
~ given_names = "Therese Valerie Franziska"
~ given_names_key = "therese_valerie_franziska"
~ given_names_meaning_fragment = "Therese hat eine unsichere Herkunft, ist im österreichischen Adel aber von Theresia kaum zu trennen. Valerie geht auf lateinisch valere zurück. Franziska bezeichnet ursprünglich die Fränkische oder Französische"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Therese.]
~ common_name = "Therese"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Valerie.]
~ common_name = "Valerie"
* * [__Höre auf__: Vally.]
~ common_name = "Vally"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Beatrix Maria Leopoldine.]
~ given_names = "Beatrix Maria Leopoldine"
~ given_names_key = "beatrix_maria_leopoldine"
~ given_names_meaning_fragment = "Beatrix geht auf lateinisch beatus zurück und wird als die Glück Bringende verstanden. Maria verweist im katholischen Gebrauch zuerst auf die Gottesmutter. Leopoldine ist die weibliche Form von Leopold"
~ given_names_combination_note = "Segen, Marienfrömmigkeit und dynastisch vertraute Namensform machen aus der Zeile eine gesellschaftliche Visitenkarte."
-> cg_after_given_names_written ->
* * [__Höre auf__: Beatrix.]
~ common_name = "Beatrix"
* * [__Höre auf__: Bea.]
~ common_name = "Bea"
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Leopoldine Amalie Theresia.]
~ given_names = "Leopoldine Amalie Theresia"
~ given_names_key = "leopoldine_amalie_theresia"
~ given_names_meaning_fragment = "Leopoldine ist die weibliche Form von Leopold und verbindet Volk mit Kühnheit. Amalie stammt aus germanischer Namenbildung und verweist auf Arbeit oder Tatkraft. Theresia entspricht Therese"
~ given_names_combination_note = "Die Folge stellt Dynastie, Tatkraft und österreichische Herrscherinnenerinnerung in eine einzige Zeile."
-> cg_after_given_names_written ->
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
* * [__Höre auf__: Amalie.]
~ common_name = "Amalie"
* * [__Höre auf__: Mali.]
~ common_name = "Mali"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Adelheid Rosalia Josepha.]
~ given_names = "Adelheid Rosalia Josepha"
~ given_names_key = "adelheid_rosalia_josepha"
~ given_names_meaning_fragment = "Adelheid verbindet germanische Bestandteile für edel und Gestalt oder Art. Rosalia geht auf lateinisch rosa zurück. Josepha ist die weibliche Form von Joseph"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Adelheid.]
~ common_name = "Adelheid"
* * [__Höre auf__: Heidi.]
~ common_name = "Heidi"
* * [__Höre auf__: Rosalia.]
~ common_name = "Rosalia"
* * [__Höre auf__: Rosa.]
~ common_name = "Rosa"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Caroline Eugenie Mathilde.]
~ given_names = "Caroline Eugenie Mathilde"
~ given_names_key = "caroline_eugenie_mathilde"
~ given_names_meaning_fragment = "Caroline ist die weibliche Form von Karl und wird mit freier Mensch verbunden. Eugenie geht auf griechisch eugenes zurück, von guter Herkunft. Mathilde trägt germanische Bestandteile für Macht und Kampf"
~ given_names_combination_note = "Freiheit, gute Herkunft und Macht im Kampf sind für ein Adelsformular erstaunlich offen, solange sie lateinisch und griechisch genug verpackt sind."
-> cg_after_given_names_written ->
* * [__Höre auf__: Caroline.]
~ common_name = "Caroline"
* * [__Höre auf__: Lina.]
~ common_name = "Lina"
* * [__Höre auf__: Eugenie.]
~ common_name = "Eugenie"
* * [__Höre auf__: Genia.]
~ common_name = "Genia"
* * [__Höre auf__: Mathilde.]
~ common_name = "Mathilde"
* * [__Höre auf__: Tilli.]
~ common_name = "Tilli"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,231 @@
// Generated given-name package choices for Adel / böhmisch-mährisch
=== cg_given_names_noble_bohemian ===
* [__Heiße__: Eleonore Ludmilla Josepha.]
~ given_names = "Eleonore Ludmilla Josepha"
~ given_names_key = "eleonore_ludmilla_josepha"
~ given_names_meaning_fragment = "Eleonore kam über höfische Namensformen in den deutschen Sprachraum. Ludmilla verbindet slawische Bestandteile für Volk und Liebe. Josepha ist die weibliche Form von Joseph und bedeutet Gott fügt hinzu"
~ given_names_combination_note = "Die Reihe verbindet höfische Form, böhmische Namensschicht und katholische Fügung. Das ist Herkunftspolitik im Taufregister."
-> cg_after_given_names_written ->
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
* * [__Höre auf__: Ludmilla.]
~ common_name = "Ludmilla"
* * [__Höre auf__: Mila.]
~ common_name = "Mila"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Clara Zdenka Franziska.]
~ given_names = "Clara Zdenka Franziska"
~ given_names_key = "clara_zdenka_franziska"
~ given_names_meaning_fragment = "Clara leitet sich von lateinisch clarus ab, hell und berühmt. Zdenka ist eine tschechische Form aus dem Namenskreis um Zdeněk. Franziska bezeichnet ursprünglich die Fränkische oder Französische"
~ given_names_combination_note = "Lateinische Deutlichkeit, böhmische Eigenform und westliche Heiligenfrömmigkeit stehen hier nebeneinander, ohne einander zu entschuldigen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Clara.]
~ common_name = "Clara"
* * [__Höre auf__: Clari.]
~ common_name = "Clari"
* * [__Höre auf__: Zdenka.]
~ common_name = "Zdenka"
* * [__Höre auf__: Zdeni.]
~ common_name = "Zdeni"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Marie Antonie Cäcilie.]
~ given_names = "Marie Antonie Cäcilie"
~ given_names_key = "marie_antonie_caecilie"
~ given_names_meaning_fragment = "Marie verweist im katholischen Gebrauch zuerst auf die Gottesmutter. Antonie geht auf den römischen Namen Antonius zurück. Cäcilie stammt vom römischen Geschlechternamen Caecilius"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Marie.]
~ common_name = "Marie"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Antonie.]
~ common_name = "Antonie"
* * [__Höre auf__: Toni.]
~ common_name = "Toni"
* * [__Höre auf__: Cäcilie.]
~ common_name = "Cäcilie"
* * [__Höre auf__: Cilli.]
~ common_name = "Cilli"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Theresia Božena Leopoldine.]
~ given_names = "Theresia Božena Leopoldine"
~ given_names_key = "theresia_bozena_leopoldine"
~ given_names_meaning_fragment = "Theresia entspricht Therese, deren Herkunft unsicher bleibt. Božena ist slawisch gebildet und verweist auf Gottgabe. Leopoldine ist die weibliche Form von Leopold und verbindet Volk mit Kühnheit"
~ given_names_combination_note = "Die Folge stellt österreichische Herrscherinnenerinnerung, böhmische Frömmigkeit und dynastisch vertraute Namensform in eine einzige Zeile."
-> cg_after_given_names_written ->
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Božena.]
~ common_name = "Božena"
* * [__Höre auf__: Božka.]
~ common_name = "Božka"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Helene Eliška Auguste.]
~ given_names = "Helene Eliška Auguste"
~ given_names_key = "helene_eliska_auguste"
~ given_names_meaning_fragment = "Helene geht auf griechisch helene zurück und wird meist als die Leuchtende gedeutet. Eliška ist die tschechische Form von Elisabeth, mein Gott ist Fülle. Auguste geht auf lateinisch augustus zurück, erhaben oder geweiht"
~ given_names_combination_note = "Griechische Helligkeit, böhmische Elisabethform und kaiserliche Erhabenheit ergeben ein Programm, das niemand als Programm aussprechen muss."
-> cg_after_given_names_written ->
* * [__Höre auf__: Helene.]
~ common_name = "Helene"
* * [__Höre auf__: Leni.]
~ common_name = "Leni"
* * [__Höre auf__: Eliška.]
~ common_name = "Eliška"
* * [__Höre auf__: Eli.]
~ common_name = "Eli"
* * [__Höre auf__: Auguste.]
~ common_name = "Auguste"
* * [__Höre auf__: Gusti.]
~ common_name = "Gusti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Sophie Kateřina Josepha.]
~ given_names = "Sophie Kateřina Josepha"
~ given_names_key = "sophie_katerina_josepha"
~ given_names_meaning_fragment = "Sophie stammt von griechisch sophia, Weisheit. Kateřina ist die tschechische Form von Katharina und wird traditionell mit Reinheit verbunden. Josepha ist die weibliche Form von Joseph"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Sophie.]
~ common_name = "Sophie"
* * [__Höre auf__: Sopherl.]
~ common_name = "Sopherl"
* * [__Höre auf__: Kateřina.]
~ common_name = "Kateřina"
* * [__Höre auf__: Katka.]
~ common_name = "Katka"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Valerie Františka Eleonore.]
~ given_names = "Valerie Františka Eleonore"
~ given_names_key = "valerie_frantiska_eleonore"
~ given_names_meaning_fragment = "Valerie geht auf lateinisch valere zurück, stark sein oder gesund sein. Františka ist die tschechische Form von Franziska. Eleonore kam über höfische Namensformen in den deutschen Sprachraum"
~ given_names_combination_note = "Stärke, tschechische Namensform und höfische Überlieferung werden hier nicht vermischt, sondern sauber in Reihe gesetzt."
-> cg_after_given_names_written ->
* * [__Höre auf__: Valerie.]
~ common_name = "Valerie"
* * [__Höre auf__: Vally.]
~ common_name = "Vally"
* * [__Höre auf__: Františka.]
~ common_name = "Františka"
* * [__Höre auf__: Fanynka.]
~ common_name = "Fanynka"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Mathilde Růžena Henriette.]
~ given_names = "Mathilde Růžena Henriette"
~ given_names_key = "mathilde_ruzena_henriette"
~ given_names_meaning_fragment = "Mathilde geht auf germanische Bestandteile für Macht und Kampf zurück. Růžena ist eine tschechische Rosenform. Henriette ist die weibliche Form von Heinrich und verweist auf Haus und Herrschaft"
~ given_names_combination_note = "Macht, Rosenfrömmigkeit und Hausherrschaft stehen so dicht beisammen, dass Zierde und Anspruch kaum zu trennen sind."
-> cg_after_given_names_written ->
* * [__Höre auf__: Mathilde.]
~ common_name = "Mathilde"
* * [__Höre auf__: Tilli.]
~ common_name = "Tilli"
* * [__Höre auf__: Růžena.]
~ common_name = "Růžena"
* * [__Höre auf__: Růža.]
~ common_name = "Růža"
* * [__Höre auf__: Henriette.]
~ common_name = "Henriette"
* * [__Höre auf__: Jetti.]
~ common_name = "Jetti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Pauline Terezie Amalie.]
~ given_names = "Pauline Terezie Amalie"
~ given_names_key = "pauline_terezie_amalie"
~ given_names_meaning_fragment = "Pauline ist die weibliche Form von Paulus, klein oder gering. Terezie ist die tschechische Form von Theresia. Amalie stammt aus germanischer Namenbildung und verweist auf Arbeit oder Tatkraft"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Pauline.]
~ common_name = "Pauline"
* * [__Höre auf__: Pauli.]
~ common_name = "Pauli"
* * [__Höre auf__: Terezie.]
~ common_name = "Terezie"
* * [__Höre auf__: Terezka.]
~ common_name = "Terezka"
* * [__Höre auf__: Amalie.]
~ common_name = "Amalie"
* * [__Höre auf__: Mali.]
~ common_name = "Mali"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Beatrix Johanna Albína.]
~ given_names = "Beatrix Johanna Albína"
~ given_names_key = "beatrix_johanna_albina"
~ given_names_meaning_fragment = "Beatrix geht auf lateinisch beatus zurück und wird als die Glück Bringende verstanden. Johanna bedeutet Gott ist gnädig. Albína leitet sich von lateinisch albus ab, weiß oder hell"
~ given_names_combination_note = "Segen, Gnade und helle Reinheit ergeben eine Taufzeile, die Frömmigkeit sehr weltlich verwertbar macht."
-> cg_after_given_names_written ->
* * [__Höre auf__: Beatrix.]
~ common_name = "Beatrix"
* * [__Höre auf__: Bea.]
~ common_name = "Bea"
* * [__Höre auf__: Johanna.]
~ common_name = "Johanna"
* * [__Höre auf__: Hanni.]
~ common_name = "Hanni"
* * [__Höre auf__: Albína.]
~ common_name = "Albína"
* * [__Höre auf__: Bína.]
~ common_name = "Bína"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,231 @@
// Generated given-name package choices for Adel / galizisch-bukowinisch
=== cg_given_names_noble_eastern ===
* [__Heiße__: Maria Jadwiga Eleonore.]
~ given_names = "Maria Jadwiga Eleonore"
~ given_names_key = "maria_jadwiga_eleonore"
~ given_names_meaning_fragment = "Maria verweist im katholischen Gebrauch zuerst auf die Gottesmutter. Jadwiga ist die polnische Form von Hedwig und trägt königliche Erinnerung mit. Eleonore kam über höfische Namensformen in den deutschen Sprachraum"
~ given_names_combination_note = "Marienfrömmigkeit, polnische Herrscherinnentradition und höfische Form halten hier drei Zugehörigkeiten zugleich fest."
-> cg_after_given_names_written ->
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Jadwiga.]
~ common_name = "Jadwiga"
* * [__Höre auf__: Jadzia.]
~ common_name = "Jadzia"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Zofia Josepha Leopoldine.]
~ given_names = "Zofia Josepha Leopoldine"
~ given_names_key = "zofia_josepha_leopoldine"
~ given_names_meaning_fragment = "Zofia ist die polnische Form von Sophie und stammt von griechisch sophia, Weisheit. Josepha ist die weibliche Form von Joseph. Leopoldine ist die weibliche Form von Leopold und verbindet Volk mit Kühnheit"
~ given_names_combination_note = "Weisheit, katholische Fügung und habsburgisch vertraute Namensform werden so geordnet, dass keine Herkunft die andere verdrängt."
-> cg_after_given_names_written ->
* * [__Höre auf__: Zofia.]
~ common_name = "Zofia"
* * [__Höre auf__: Zosia.]
~ common_name = "Zosia"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Helena Antonina Franziska.]
~ given_names = "Helena Antonina Franziska"
~ given_names_key = "helena_antonina_franziska"
~ given_names_meaning_fragment = "Helena geht auf griechisch helene zurück und wird meist als die Leuchtende gedeutet. Antonina ist die weibliche Form von Antoninus und gehört zur römischen Namensschicht. Franziska bezeichnet ursprünglich die Fränkische oder Französische"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Helena.]
~ common_name = "Helena"
* * [__Höre auf__: Hela.]
~ common_name = "Hela"
* * [__Höre auf__: Antonina.]
~ common_name = "Antonina"
* * [__Höre auf__: Tosia.]
~ common_name = "Tosia"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Valerie Stanisława Theresia.]
~ given_names = "Valerie Stanisława Theresia"
~ given_names_key = "valerie_stanislawa_theresia"
~ given_names_meaning_fragment = "Valerie geht auf lateinisch valere zurück, stark sein oder gesund sein. Stanisława verbindet slawische Bestandteile für Standhaftigkeit und Ruhm. Theresia entspricht Therese, deren Herkunft unsicher bleibt"
~ given_names_combination_note = "Lateinische Stärke, polnischer Ruhmanspruch und österreichische Theresientradition ergeben eine sehr bewusste Reihenfolge."
-> cg_after_given_names_written ->
* * [__Höre auf__: Valerie.]
~ common_name = "Valerie"
* * [__Höre auf__: Vally.]
~ common_name = "Vally"
* * [__Höre auf__: Stanisława.]
~ common_name = "Stanisława"
* * [__Höre auf__: Stasia.]
~ common_name = "Stasia"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Sophie Kazimiera Auguste.]
~ given_names = "Sophie Kazimiera Auguste"
~ given_names_key = "sophie_kazimiera_auguste"
~ given_names_meaning_fragment = "Sophie stammt von griechisch sophia, Weisheit. Kazimiera ist die weibliche Form von Kazimierz und wird mit Friedensstiftung verbunden. Auguste geht auf lateinisch augustus zurück, erhaben oder geweiht"
~ given_names_combination_note = "Weisheit, politischer Friede und kaiserliche Erhabenheit stehen hier so amtstauglich beisammen, dass Ehrgeiz fromm aussehen darf."
-> cg_after_given_names_written ->
* * [__Höre auf__: Sophie.]
~ common_name = "Sophie"
* * [__Höre auf__: Sopherl.]
~ common_name = "Sopherl"
* * [__Höre auf__: Kazimiera.]
~ common_name = "Kazimiera"
* * [__Höre auf__: Kazía.]
~ common_name = "Kazía"
* * [__Höre auf__: Auguste.]
~ common_name = "Auguste"
* * [__Höre auf__: Gusti.]
~ common_name = "Gusti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Mathilde Bronisława Josepha.]
~ given_names = "Mathilde Bronisława Josepha"
~ given_names_key = "mathilde_bronislawa_josepha"
~ given_names_meaning_fragment = "Mathilde geht auf germanische Bestandteile für Macht und Kampf zurück. Bronisława verbindet slawische Bestandteile für Schutz und Ruhm. Josepha ist die weibliche Form von Joseph"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Mathilde.]
~ common_name = "Mathilde"
* * [__Höre auf__: Tilli.]
~ common_name = "Tilli"
* * [__Höre auf__: Bronisława.]
~ common_name = "Bronisława"
* * [__Höre auf__: Bronia.]
~ common_name = "Bronia"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Cäcilie Marianna Eleonore.]
~ given_names = "Cäcilie Marianna Eleonore"
~ given_names_key = "caecilie_marianna_eleonore"
~ given_names_meaning_fragment = "Cäcilie stammt vom römischen Geschlechternamen Caecilius. Marianna verbindet Maria mit Anna und verstärkt die katholische Familienfrömmigkeit. Eleonore kam über höfische Namensformen in den deutschen Sprachraum"
~ given_names_combination_note = "Römische Namensschicht, doppelte Heiligenbindung und höfische Form machen die Zeile zugleich fromm und gesellschaftlich brauchbar."
-> cg_after_given_names_written ->
* * [__Höre auf__: Cäcilie.]
~ common_name = "Cäcilie"
* * [__Höre auf__: Cilli.]
~ common_name = "Cilli"
* * [__Höre auf__: Marianna.]
~ common_name = "Marianna"
* * [__Höre auf__: Marynia.]
~ common_name = "Marynia"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Adelheid Karolina Jadwiga.]
~ given_names = "Adelheid Karolina Jadwiga"
~ given_names_key = "adelheid_karolina_jadwiga"
~ given_names_meaning_fragment = "Adelheid verbindet germanische Bestandteile für edel und Gestalt oder Art. Karolina ist die polnische Form von Caroline und weibliche Form von Karl. Jadwiga ist die polnische Form von Hedwig"
~ given_names_combination_note = "Adelige Art, freier Personenname und polnische Herrscherinnenerinnerung lassen wenig Raum für Zufall."
-> cg_after_given_names_written ->
* * [__Höre auf__: Adelheid.]
~ common_name = "Adelheid"
* * [__Höre auf__: Heidi.]
~ common_name = "Heidi"
* * [__Höre auf__: Karolina.]
~ common_name = "Karolina"
* * [__Höre auf__: Lina.]
~ common_name = "Lina"
* * [__Höre auf__: Jadwiga.]
~ common_name = "Jadwiga"
* * [__Höre auf__: Jadzia.]
~ common_name = "Jadzia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Pauline Leokadia Amalie.]
~ given_names = "Pauline Leokadia Amalie"
~ given_names_key = "pauline_leokadia_amalie"
~ given_names_meaning_fragment = "Pauline ist die weibliche Form von Paulus, klein oder gering. Leokadia geht auf eine alte Heiligenüberlieferung zurück. Amalie stammt aus germanischer Namenbildung und verweist auf Arbeit oder Tatkraft"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Pauline.]
~ common_name = "Pauline"
* * [__Höre auf__: Pauli.]
~ common_name = "Pauli"
* * [__Höre auf__: Leokadia.]
~ common_name = "Leokadia"
* * [__Höre auf__: Lodzia.]
~ common_name = "Lodzia"
* * [__Höre auf__: Amalie.]
~ common_name = "Amalie"
* * [__Höre auf__: Mali.]
~ common_name = "Mali"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Beatrix Józefa Henriette.]
~ given_names = "Beatrix Józefa Henriette"
~ given_names_key = "beatrix_jozefa_henriette"
~ given_names_meaning_fragment = "Beatrix geht auf lateinisch beatus zurück und wird als die Glück Bringende verstanden. Józefa ist die polnische Form von Josepha. Henriette ist die weibliche Form von Heinrich und verweist auf Haus und Herrschaft"
~ given_names_combination_note = "Segen, polnische Josephform und Hausherrschaft bringen Frömmigkeit und Besitzordnung in denselben Eintrag."
-> cg_after_given_names_written ->
* * [__Höre auf__: Beatrix.]
~ common_name = "Beatrix"
* * [__Höre auf__: Bea.]
~ common_name = "Bea"
* * [__Höre auf__: Józefa.]
~ common_name = "Józefa"
* * [__Höre auf__: Józia.]
~ common_name = "Józia"
* * [__Höre auf__: Henriette.]
~ common_name = "Henriette"
* * [__Höre auf__: Jetti.]
~ common_name = "Jetti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,231 @@
// Generated given-name package choices for Adel / ungarisch
=== cg_given_names_noble_hungarian ===
* [__Heiße__: Ilona Theresia Eleonore.]
~ given_names = "Ilona Theresia Eleonore"
~ given_names_key = "ilona_theresia_eleonore"
~ given_names_meaning_fragment = "Ilona ist eine ungarische Form aus dem Namenskreis von Helena, der Leuchtenden. Theresia entspricht Therese, deren Herkunft unsicher bleibt. Eleonore kam über höfische Namensformen in den deutschen Sprachraum"
~ given_names_combination_note = "Ungarische Namensform, österreichische Theresientradition und höfische Überlieferung halten die politische Lage im Taufregister fest."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ilona.]
~ common_name = "Ilona"
* * [__Höre auf__: Ilonka.]
~ common_name = "Ilonka"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Erzsébet Maria Josepha.]
~ given_names = "Erzsébet Maria Josepha"
~ given_names_key = "erzsebet_maria_josepha"
~ given_names_meaning_fragment = "Erzsébet ist die ungarische Form von Elisabeth, mein Gott ist Fülle. Maria verweist im katholischen Gebrauch zuerst auf die Gottesmutter. Josepha ist die weibliche Form von Joseph"
~ given_names_combination_note = "Elisabethfrömmigkeit, Marienbindung und josephinische Amtsnähe werden hier ohne sichtbaren Widerspruch zusammengeführt."
-> cg_after_given_names_written ->
* * [__Höre auf__: Erzsébet.]
~ common_name = "Erzsébet"
* * [__Höre auf__: Erzsi.]
~ common_name = "Erzsi"
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Margit Leopoldine Amalie.]
~ given_names = "Margit Leopoldine Amalie"
~ given_names_key = "margit_leopoldine_amalie"
~ given_names_meaning_fragment = "Margit ist die ungarische Form von Margarete und geht auf griechisch margarites, Perle, zurück. Leopoldine ist die weibliche Form von Leopold. Amalie stammt aus germanischer Namenbildung und verweist auf Arbeit oder Tatkraft"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Margit.]
~ common_name = "Margit"
* * [__Höre auf__: Margitka.]
~ common_name = "Margitka"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
* * [__Höre auf__: Amalie.]
~ common_name = "Amalie"
* * [__Höre auf__: Mali.]
~ common_name = "Mali"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Sarolta Eleonore Franziska.]
~ given_names = "Sarolta Eleonore Franziska"
~ given_names_key = "sarolta_eleonore_franziska"
~ given_names_meaning_fragment = "Sarolta ist eine ungarische Namensform, die mit Charlotte verbunden wird. Eleonore kam über höfische Namensformen in den deutschen Sprachraum. Franziska bezeichnet ursprünglich die Fränkische oder Französische"
~ given_names_combination_note = "Ungarische Eigenform, höfische Überlieferung und westliche Heiligenfrömmigkeit stehen hier kontrolliert nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Sarolta.]
~ common_name = "Sarolta"
* * [__Höre auf__: Sári.]
~ common_name = "Sári"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Klára Mária Auguste.]
~ given_names = "Klára Mária Auguste"
~ given_names_key = "klara_maria_auguste"
~ given_names_meaning_fragment = "Klára leitet sich von lateinisch clarus ab, hell und berühmt. Mária verweist im katholischen Gebrauch zuerst auf die Gottesmutter. Auguste geht auf lateinisch augustus zurück, erhaben oder geweiht"
~ given_names_combination_note = "Helligkeit, Marienfrömmigkeit und kaiserliche Erhabenheit ergeben eine Zeile, die sehr genau weiß, wem sie gefallen soll."
-> cg_after_given_names_written ->
* * [__Höre auf__: Klára.]
~ common_name = "Klára"
* * [__Höre auf__: Klári.]
~ common_name = "Klári"
* * [__Höre auf__: Mária.]
~ common_name = "Mária"
* * [__Höre auf__: Mari.]
~ common_name = "Mari"
* * [__Höre auf__: Auguste.]
~ common_name = "Auguste"
* * [__Höre auf__: Gusti.]
~ common_name = "Gusti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Júlia Theresia Henriette.]
~ given_names = "Júlia Theresia Henriette"
~ given_names_key = "julia_theresia_henriette"
~ given_names_meaning_fragment = "Júlia ist die ungarische Form von Julia und gehört zur römischen Namensschicht. Theresia entspricht Therese. Henriette ist die weibliche Form von Heinrich und verweist auf Haus und Herrschaft"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Júlia.]
~ common_name = "Júlia"
* * [__Höre auf__: Juli.]
~ common_name = "Juli"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Henriette.]
~ common_name = "Henriette"
* * [__Höre auf__: Jetti.]
~ common_name = "Jetti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Róza Elisabeth Leopoldine.]
~ given_names = "Róza Elisabeth Leopoldine"
~ given_names_key = "roza_elisabeth_leopoldine"
~ given_names_meaning_fragment = "Róza ist die ungarische Form von Rosa und geht auf lateinisch rosa zurück. Elisabeth bedeutet mein Gott ist Fülle. Leopoldine ist die weibliche Form von Leopold"
~ given_names_combination_note = "Rose, Elisabethfrömmigkeit und habsburgisch vertraute Namensform machen Zierde, Glauben und Dynastie zugleich verfügbar."
-> cg_after_given_names_written ->
* * [__Höre auf__: Róza.]
~ common_name = "Róza"
* * [__Höre auf__: Rózsi.]
~ common_name = "Rózsi"
* * [__Höre auf__: Elisabeth.]
~ common_name = "Elisabeth"
* * [__Höre auf__: Liesl.]
~ common_name = "Liesl"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Gizella Sophie Josepha.]
~ given_names = "Gizella Sophie Josepha"
~ given_names_key = "gizella_sophie_josepha"
~ given_names_meaning_fragment = "Gizella ist die ungarische Form von Gisela und geht auf germanische Namenbildung zurück. Sophie stammt von griechisch sophia, Weisheit. Josepha ist die weibliche Form von Joseph"
~ given_names_combination_note = "Ungarische Form, griechische Weisheit und katholische Fügung ergeben eine Zurüstung für Salon und Amt zugleich."
-> cg_after_given_names_written ->
* * [__Höre auf__: Gizella.]
~ common_name = "Gizella"
* * [__Höre auf__: Gizi.]
~ common_name = "Gizi"
* * [__Höre auf__: Sophie.]
~ common_name = "Sophie"
* * [__Höre auf__: Sopherl.]
~ common_name = "Sopherl"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Etelka Valerie Eleonore.]
~ given_names = "Etelka Valerie Eleonore"
~ given_names_key = "etelka_valerie_eleonore"
~ given_names_meaning_fragment = "Etelka ist eine ungarische Namensform aus der literarischen und nationalen Namensmode. Valerie geht auf lateinisch valere zurück, stark sein oder gesund sein. Eleonore kam über höfische Namensformen in den deutschen Sprachraum"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Etelka.]
~ common_name = "Etelka"
* * [__Höre auf__: Etus.]
~ common_name = "Etus"
* * [__Höre auf__: Valerie.]
~ common_name = "Valerie"
* * [__Höre auf__: Vally.]
~ common_name = "Vally"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Aranka Theresia Franziska.]
~ given_names = "Aranka Theresia Franziska"
~ given_names_key = "aranka_theresia_franziska"
~ given_names_meaning_fragment = "Aranka ist eine ungarische Verkleinerungsform zu arany, Gold. Theresia entspricht Therese. Franziska bezeichnet ursprünglich die Fränkische oder Französische"
~ given_names_combination_note = "Gold, österreichische Theresientradition und franziskanische Namensschicht fassen Glanz und Pflicht in dieselbe Zeile."
-> cg_after_given_names_written ->
* * [__Höre auf__: Aranka.]
~ common_name = "Aranka"
* * [__Höre auf__: Ari.]
~ common_name = "Ari"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,231 @@
// Generated given-name package choices for Adel / südlich-adriatisch
=== cg_given_names_noble_southern ===
* [__Heiße__: Giulia Maria Eleonore.]
~ given_names = "Giulia Maria Eleonore"
~ given_names_key = "giulia_maria_eleonore"
~ given_names_meaning_fragment = "Giulia ist die italienische Form von Julia und gehört zur römischen Namensschicht. Maria verweist im katholischen Gebrauch zuerst auf die Gottesmutter. Eleonore kam über höfische Namensformen in den deutschen Sprachraum"
~ given_names_combination_note = "Italienische Form, Marienfrömmigkeit und höfische Überlieferung machen die südliche Herkunft anschlussfähig an Wien."
-> cg_after_given_names_written ->
* * [__Höre auf__: Giulia.]
~ common_name = "Giulia"
* * [__Höre auf__: Giulietta.]
~ common_name = "Giulietta"
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Bianca Theresia Leopoldine.]
~ given_names = "Bianca Theresia Leopoldine"
~ given_names_key = "bianca_theresia_leopoldine"
~ given_names_meaning_fragment = "Bianca bedeutet weiß. Theresia entspricht Therese, deren Herkunft unsicher bleibt. Leopoldine ist die weibliche Form von Leopold und verbindet Volk mit Kühnheit"
~ given_names_combination_note = "Helle Farbe, österreichische Herrscherinnenerinnerung und habsburgisch vertraute Namensform ergeben eine höfliche Unterwerfung unter mehrere Erwartungen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Bianca.]
~ common_name = "Bianca"
* * [__Höre auf__: Bia.]
~ common_name = "Bia"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Emilia Josepha Franziska.]
~ given_names = "Emilia Josepha Franziska"
~ given_names_key = "emilia_josepha_franziska"
~ given_names_meaning_fragment = "Emilia geht auf den römischen Namen Aemilius zurück. Josepha ist die weibliche Form von Joseph. Franziska bezeichnet ursprünglich die Fränkische oder Französische"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Emilia.]
~ common_name = "Emilia"
* * [__Höre auf__: Emi.]
~ common_name = "Emi"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Carolina Giuseppina Auguste.]
~ given_names = "Carolina Giuseppina Auguste"
~ given_names_key = "carolina_giuseppina_auguste"
~ given_names_meaning_fragment = "Carolina ist die weibliche Form von Karl und wird mit freier Mensch verbunden. Giuseppina ist die italienische Form von Josepha. Auguste geht auf lateinisch augustus zurück, erhaben oder geweiht"
~ given_names_combination_note = "Freiheit, italienische Josephform und kaiserliche Erhabenheit stehen hier in genau der Ordnung, die ein Formular beruhigt."
-> cg_after_given_names_written ->
* * [__Höre auf__: Carolina.]
~ common_name = "Carolina"
* * [__Höre auf__: Lina.]
~ common_name = "Lina"
* * [__Höre auf__: Giuseppina.]
~ common_name = "Giuseppina"
* * [__Höre auf__: Pina.]
~ common_name = "Pina"
* * [__Höre auf__: Auguste.]
~ common_name = "Auguste"
* * [__Höre auf__: Gusti.]
~ common_name = "Gusti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Margherita Eleonore Amalie.]
~ given_names = "Margherita Eleonore Amalie"
~ given_names_key = "margherita_eleonore_amalie"
~ given_names_meaning_fragment = "Margherita ist die italienische Form von Margarete und geht auf griechisch margarites, Perle, zurück. Eleonore kam über höfische Namensformen in den deutschen Sprachraum. Amalie stammt aus germanischer Namenbildung und verweist auf Arbeit oder Tatkraft"
~ given_names_combination_note = "Perle, höfische Form und Tatkraft ergeben eine Folge, in der Zierde und Nutzen einander nicht widersprechen dürfen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Margherita.]
~ common_name = "Margherita"
* * [__Höre auf__: Rita.]
~ common_name = "Rita"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
* * [__Höre auf__: Amalie.]
~ common_name = "Amalie"
* * [__Höre auf__: Mali.]
~ common_name = "Mali"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Lucia Theresia Henriette.]
~ given_names = "Lucia Theresia Henriette"
~ given_names_key = "lucia_theresia_henriette"
~ given_names_meaning_fragment = "Lucia geht auf lateinisch lux zurück, Licht. Theresia entspricht Therese. Henriette ist die weibliche Form von Heinrich und verweist auf Haus und Herrschaft"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Lucia.]
~ common_name = "Lucia"
* * [__Höre auf__: Luci.]
~ common_name = "Luci"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Henriette.]
~ common_name = "Henriette"
* * [__Höre auf__: Jetti.]
~ common_name = "Jetti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Jelena Maria Leopoldine.]
~ given_names = "Jelena Maria Leopoldine"
~ given_names_key = "jelena_maria_leopoldine"
~ given_names_meaning_fragment = "Jelena ist eine südslawische Form von Helena, der Leuchtenden. Maria verweist im katholischen Gebrauch zuerst auf die Gottesmutter. Leopoldine ist die weibliche Form von Leopold"
~ given_names_combination_note = "Südslawische Form, katholische Marienbindung und habsburgisch vertrauter Name stehen in einer Zeile, die Zugehörigkeit ordnet."
-> cg_after_given_names_written ->
* * [__Höre auf__: Jelena.]
~ common_name = "Jelena"
* * [__Höre auf__: Jela.]
~ common_name = "Jela"
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Katarina Valerie Franziska.]
~ given_names = "Katarina Valerie Franziska"
~ given_names_key = "katarina_valerie_franziska"
~ given_names_meaning_fragment = "Katarina ist eine südslawische Form von Katharina und wird traditionell mit Reinheit verbunden. Valerie geht auf lateinisch valere zurück, stark sein oder gesund sein. Franziska bezeichnet ursprünglich die Fränkische oder Französische"
~ given_names_combination_note = "Reinheit, Stärke und westliche Heiligenfrömmigkeit ergeben eine Folge, die weniger privat als gesellschaftlich brauchbar ist."
-> cg_after_given_names_written ->
* * [__Höre auf__: Katarina.]
~ common_name = "Katarina"
* * [__Höre auf__: Kata.]
~ common_name = "Kata"
* * [__Höre auf__: Valerie.]
~ common_name = "Valerie"
* * [__Höre auf__: Vally.]
~ common_name = "Vally"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ivana Cäcilie Josepha.]
~ given_names = "Ivana Cäcilie Josepha"
~ given_names_key = "ivana_caecilie_josepha"
~ given_names_meaning_fragment = "Ivana ist die südslawische weibliche Form von Johannes und bedeutet Gott ist gnädig. Cäcilie stammt vom römischen Geschlechternamen Caecilius. Josepha ist die weibliche Form von Joseph"
~ given_names_combination_note = "In dieser Folge steht nicht nur Frömmigkeit, sondern auch die Pflicht, einem Haus Ehre zu machen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ivana.]
~ common_name = "Ivana"
* * [__Höre auf__: Iva.]
~ common_name = "Iva"
* * [__Höre auf__: Cäcilie.]
~ common_name = "Cäcilie"
* * [__Höre auf__: Cilli.]
~ common_name = "Cilli"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Štefanija Sophie Eleonore.]
~ given_names = "Štefanija Sophie Eleonore"
~ given_names_key = "tefanija_sophie_eleonore"
~ given_names_meaning_fragment = "Štefanija ist die südslawische weibliche Form von Stephan und verweist auf Kranz oder Krone. Sophie stammt von griechisch sophia, Weisheit. Eleonore kam über höfische Namensformen in den deutschen Sprachraum"
~ given_names_combination_note = "Krone, Weisheit und höfische Form geben der Zeile eine fast zu deutliche gesellschaftliche Absicht."
-> cg_after_given_names_written ->
* * [__Höre auf__: Štefanija.]
~ common_name = "Štefanija"
* * [__Höre auf__: Štefka.]
~ common_name = "Štefka"
* * [__Höre auf__: Sophie.]
~ common_name = "Sophie"
* * [__Höre auf__: Sopherl.]
~ common_name = "Sopherl"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,169 @@
// Generated given-name package choices for Arbeiterherkunft / deutsch-österreichisch
=== cg_given_names_working_austrian ===
* [__Heiße__: Maria.]
~ given_names = "Maria"
~ given_names_key = "maria"
~ given_names_meaning_fragment = "Maria verweist im katholischen Gebrauch zuerst auf die Gottesmutter"
~ given_names_combination_note = "Ohne zweiten Vornamen steht die Marienbindung allein auf dem Papier. Das macht sie nicht ärmer, nur unmittelbarer."
-> cg_after_given_names_written ->
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Mirl.]
~ common_name = "Mirl"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Anna.]
~ given_names = "Anna"
~ given_names_key = "anna"
~ given_names_meaning_fragment = "Anna geht auf hebräisch Hannah zurück und bedeutet Gnade"
~ given_names_combination_note = "Die Kürze lässt wenig Platz zum Verstecken. Dafür muss auch nichts erklärt werden."
-> cg_after_given_names_written ->
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Anni.]
~ common_name = "Anni"
* * [__Höre auf__: Nannerl.]
~ common_name = "Nannerl"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Josefa.]
~ given_names = "Josefa"
~ given_names_key = "josefa"
~ given_names_meaning_fragment = "Josefa ist die weibliche Form von Joseph und bedeutet Gott fügt hinzu"
~ given_names_combination_note = "Die Form ist katholisch vertraut und im Amt unverdächtig. Beides kann nützlich sein."
-> cg_after_given_names_written ->
* * [__Höre auf__: Josefa.]
~ common_name = "Josefa"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
* * [__Höre auf__: Sefa.]
~ common_name = "Sefa"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Therese.]
~ given_names = "Therese"
~ given_names_key = "therese"
~ given_names_meaning_fragment = "Therese entspricht Theresia, deren Herkunft unsicher bleibt"
~ given_names_combination_note = "Die österreichische Erinnerung an Theresia arbeitet im Hintergrund mit, auch wenn nur ein einfacher Vorname im Feld steht."
-> cg_after_given_names_written ->
* * [__Höre auf__: Therese.]
~ common_name = "Therese"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Reserl.]
~ common_name = "Reserl"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Franziska.]
~ given_names = "Franziska"
~ given_names_key = "franziska"
~ given_names_meaning_fragment = "Franziska bezeichnet ursprünglich die Fränkische oder Französische"
~ given_names_combination_note = "Der Heiligenname ist geläufig genug, um nicht aufzufallen, und bestimmt genug, um nicht weich zu werden."
-> cg_after_given_names_written ->
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
* * [__Höre auf__: Franzi.]
~ common_name = "Franzi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Katharina.]
~ given_names = "Katharina"
~ given_names_key = "katharina"
~ given_names_meaning_fragment = "Katharina wird traditionell mit Reinheit verbunden, auch wenn die Herkunft des Namens komplexer ist"
~ given_names_combination_note = "Der Eintrag bringt eine Heilige mit, aber keinen Schmuck. Das passt besser zu einem Formular, als es sollte."
-> cg_after_given_names_written ->
* * [__Höre auf__: Katharina.]
~ common_name = "Katharina"
* * [__Höre auf__: Kathi.]
~ common_name = "Kathi"
* * [__Höre auf__: Käthe.]
~ common_name = "Käthe"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Barbara.]
~ given_names = "Barbara"
~ given_names_key = "barbara"
~ given_names_meaning_fragment = "Barbara geht auf griechisch barbaros zurück und bezeichnete ursprünglich die Fremde"
~ given_names_combination_note = "Die Fremdheit steht nicht als Makel da, sondern als etwas, das gelernt hat, aufrecht zu bleiben."
-> cg_after_given_names_written ->
* * [__Höre auf__: Barbara.]
~ common_name = "Barbara"
* * [__Höre auf__: Barbl.]
~ common_name = "Barbl"
* * [__Höre auf__: Babsi.]
~ common_name = "Babsi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Magdalena.]
~ given_names = "Magdalena"
~ given_names_key = "magdalena"
~ given_names_meaning_fragment = "Magdalena verweist auf Maria Magdalena und ursprünglich auf Magdala"
~ given_names_combination_note = "Der biblische Herkunftsort reist im Namen mit, auch wenn das Amt nur eine Zeile dafür vorsieht."
-> cg_after_given_names_written ->
* * [__Höre auf__: Magdalena.]
~ common_name = "Magdalena"
* * [__Höre auf__: Leni.]
~ common_name = "Leni"
* * [__Höre auf__: Magda.]
~ common_name = "Magda"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Rosa.]
~ given_names = "Rosa"
~ given_names_key = "rosa"
~ given_names_meaning_fragment = "Rosa geht auf lateinisch rosa zurück"
~ given_names_combination_note = "Die Blume ist nicht adelig, nicht bürgerlich, nicht arm. Sie steht da und entzieht sich für einen Moment der Sortierung."
-> cg_after_given_names_written ->
* * [__Höre auf__: Rosa.]
~ common_name = "Rosa"
* * [__Höre auf__: Rosi.]
~ common_name = "Rosi"
* * [__Höre auf__: Roserl.]
~ common_name = "Roserl"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Agnes.]
~ given_names = "Agnes"
~ given_names_key = "agnes"
~ given_names_meaning_fragment = "Agnes geht auf griechisch hagne zurück und bedeutet rein oder heilig"
~ given_names_combination_note = "Die strenge Bedeutung braucht keinen zweiten Vornamen neben sich. Sie ist allein deutlich genug."
-> cg_after_given_names_written ->
* * [__Höre auf__: Agnes.]
~ common_name = "Agnes"
* * [__Höre auf__: Agi.]
~ common_name = "Agi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,171 @@
// Generated given-name package choices for Arbeiterherkunft / böhmisch-mährisch
=== cg_given_names_working_bohemian ===
* [__Heiße__: Marie.]
~ given_names = "Marie"
~ given_names_key = "marie"
~ given_names_meaning_fragment = "Marie verweist im katholischen Gebrauch zuerst auf die Gottesmutter"
~ given_names_combination_note = "Die tschechischen Koseformen stehen im Alltag näher als die amtliche Form. Auf dem Papier bleibt beides gleichzeitig wahr."
-> cg_after_given_names_written ->
* * [__Höre auf__: Marie.]
~ common_name = "Marie"
* * [__Höre auf__: Maruška.]
~ common_name = "Maruška"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Anna.]
~ given_names = "Anna"
~ given_names_key = "anna"
~ given_names_meaning_fragment = "Anna geht auf hebräisch Hannah zurück und bedeutet Gnade"
~ given_names_combination_note = "Die Kürze ist nicht leer. Sie lässt nur wenig Platz für fremde Deutung."
-> cg_after_given_names_written ->
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Anka.]
~ common_name = "Anka"
* * [__Höre auf__: Anička.]
~ common_name = "Anička"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Josefa.]
~ given_names = "Josefa"
~ given_names_key = "josefa"
~ given_names_meaning_fragment = "Josefa ist die weibliche Form von Joseph und bedeutet Gott fügt hinzu"
~ given_names_combination_note = "Die amtliche Form ist vertraut, die Koseformen gehören anderen Räumen. Genau dort liegt der Unterschied."
-> cg_after_given_names_written ->
* * [__Höre auf__: Josefa.]
~ common_name = "Josefa"
* * [__Höre auf__: Pepička.]
~ common_name = "Pepička"
* * [__Höre auf__: Pepina.]
~ common_name = "Pepina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Františka.]
~ given_names = "Františka"
~ given_names_key = "frantiska"
~ given_names_meaning_fragment = "Františka ist die tschechische Form von Franziska und bezeichnet ursprünglich die Fränkische oder Französische"
~ given_names_combination_note = "Die Form zeigt Herkunft, ohne sich dafür zu entschuldigen. Auf einem Wiener Formular ist das bereits eine Haltung."
-> cg_after_given_names_written ->
* * [__Höre auf__: Františka.]
~ common_name = "Františka"
* * [__Höre auf__: Fanynka.]
~ common_name = "Fanynka"
* * [__Höre auf__: Fanka.]
~ common_name = "Fanka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Kateřina.]
~ given_names = "Kateřina"
~ given_names_key = "katerina"
~ given_names_meaning_fragment = "Kateřina ist die tschechische Form von Katharina und wird traditionell mit Reinheit verbunden"
~ given_names_combination_note = "Der Eintrag ist einfach, aber nicht glatt. Die Häkchen und Zeichen bleiben sichtbar."
-> cg_after_given_names_written ->
* * [__Höre auf__: Kateřina.]
~ common_name = "Kateřina"
* * [__Höre auf__: Katka.]
~ common_name = "Katka"
* * [__Höre auf__: Kačenka.]
~ common_name = "Kačenka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Antonie.]
~ given_names = "Antonie"
~ given_names_key = "antonie"
~ given_names_meaning_fragment = "Antonie geht auf den römischen Namen Antonius zurück"
~ given_names_combination_note = "Eine römische Namensschicht wirkt im einfachen Feld fast strenger als jeder Schmuck."
-> cg_after_given_names_written ->
* * [__Höre auf__: Antonie.]
~ common_name = "Antonie"
* * [__Höre auf__: Tonka.]
~ common_name = "Tonka"
* * [__Höre auf__: Tonička.]
~ common_name = "Tonička"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Terezie.]
~ given_names = "Terezie"
~ given_names_key = "terezie"
~ given_names_meaning_fragment = "Terezie ist die tschechische Form von Theresia"
~ given_names_combination_note = "Die österreichische Erinnerung bleibt erkennbar, aber sie spricht mit böhmischer Stimme."
-> cg_after_given_names_written ->
* * [__Höre auf__: Terezie.]
~ common_name = "Terezie"
* * [__Höre auf__: Terezka.]
~ common_name = "Terezka"
* * [__Höre auf__: Terka.]
~ common_name = "Terka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Barbora.]
~ given_names = "Barbora"
~ given_names_key = "barbora"
~ given_names_meaning_fragment = "Barbora ist die tschechische Form von Barbara und geht auf griechisch barbaros, die Fremde, zurück"
~ given_names_combination_note = "Ausgerechnet die Fremde steht hier als einheimische Form im Formular. Das sollte dem Amt zu denken geben, tut es aber nicht."
-> cg_after_given_names_written ->
* * [__Höre auf__: Barbora.]
~ common_name = "Barbora"
* * [__Höre auf__: Barča.]
~ common_name = "Barča"
* * [__Höre auf__: Bára.]
~ common_name = "Bára"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Růžena.]
~ given_names = "Růžena"
~ given_names_key = "ruzena"
~ given_names_meaning_fragment = "Růžena ist eine tschechische Rosenform"
~ given_names_combination_note = "Die Blume bleibt nicht dekorativ. Sie steht in einer Sprache da, die im Formular nicht verschwindet."
-> cg_after_given_names_written ->
* * [__Höre auf__: Růžena.]
~ common_name = "Růžena"
* * [__Höre auf__: Růža.]
~ common_name = "Růža"
* * [__Höre auf__: Růženka.]
~ common_name = "Růženka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Božena.]
~ given_names = "Božena"
~ given_names_key = "bozena"
~ given_names_meaning_fragment = "Božena ist slawisch gebildet und verweist auf Gottgabe"
~ given_names_combination_note = "Die Bedeutung ist fromm, aber nicht österreichisch zurechtgebügelt. Das macht die Zeile stärker."
-> cg_after_given_names_written ->
* * [__Höre auf__: Božena.]
~ common_name = "Božena"
* * [__Höre auf__: Božka.]
~ common_name = "Božka"
* * [__Höre auf__: Ženka.]
~ common_name = "Ženka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,171 @@
// Generated given-name package choices for Arbeiterherkunft / galizisch-bukowinisch
=== cg_given_names_working_eastern ===
* [__Heiße__: Maria.]
~ given_names = "Maria"
~ given_names_key = "maria"
~ given_names_meaning_fragment = "Maria verweist im katholischen Gebrauch zuerst auf die Gottesmutter"
~ given_names_combination_note = "Die polnischen Koseformen gehören nicht dem Amt, sondern den Menschen, die nahe genug stehen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Marynia.]
~ common_name = "Marynia"
* * [__Höre auf__: Mania.]
~ common_name = "Mania"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Anna.]
~ given_names = "Anna"
~ given_names_key = "anna"
~ given_names_meaning_fragment = "Anna geht auf hebräisch Hannah zurück und bedeutet Gnade"
~ given_names_combination_note = "Die Form ist in jeder Sprache vertraut. Gerade deshalb verrät sie nur, was du zulässt."
-> cg_after_given_names_written ->
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Ania.]
~ common_name = "Ania"
* * [__Höre auf__: Anusia.]
~ common_name = "Anusia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Katarzyna.]
~ given_names = "Katarzyna"
~ given_names_key = "katarzyna"
~ given_names_meaning_fragment = "Katarzyna ist die polnische Form von Katharina und wird traditionell mit Reinheit verbunden"
~ given_names_combination_note = "Die amtliche Länge und die vertrauten Kurzformen gehören zu verschiedenen Türen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Katarzyna.]
~ common_name = "Katarzyna"
* * [__Höre auf__: Kasia.]
~ common_name = "Kasia"
* * [__Höre auf__: Kaśka.]
~ common_name = "Kaśka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Zofia.]
~ given_names = "Zofia"
~ given_names_key = "zofia"
~ given_names_meaning_fragment = "Zofia ist die polnische Form von Sophie und stammt von griechisch sophia, Weisheit"
~ given_names_combination_note = "Weisheit steht hier nicht gelehrt, sondern knapp. Das macht sie schwerer zu belächeln."
-> cg_after_given_names_written ->
* * [__Höre auf__: Zofia.]
~ common_name = "Zofia"
* * [__Höre auf__: Zosia.]
~ common_name = "Zosia"
* * [__Höre auf__: Zocha.]
~ common_name = "Zocha"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Jadwiga.]
~ given_names = "Jadwiga"
~ given_names_key = "jadwiga"
~ given_names_meaning_fragment = "Jadwiga ist die polnische Form von Hedwig und trägt die Erinnerung an Königinnen und Heilige mit"
~ given_names_combination_note = "Ein einzelner Vorname kann mehr Geschichte tragen, als in eine Formularzeile passen sollte."
-> cg_after_given_names_written ->
* * [__Höre auf__: Jadwiga.]
~ common_name = "Jadwiga"
* * [__Höre auf__: Jadzia.]
~ common_name = "Jadzia"
* * [__Höre auf__: Jadziunia.]
~ common_name = "Jadziunia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Agnieszka.]
~ given_names = "Agnieszka"
~ given_names_key = "agnieszka"
~ given_names_meaning_fragment = "Agnieszka ist die polnische Form von Agnes und geht auf griechisch hagne, rein oder heilig, zurück"
~ given_names_combination_note = "Die Strenge der Bedeutung bleibt erhalten, auch wenn die vertraute Form sie weicher ausspricht."
-> cg_after_given_names_written ->
* * [__Höre auf__: Agnieszka.]
~ common_name = "Agnieszka"
* * [__Höre auf__: Aga.]
~ common_name = "Aga"
* * [__Höre auf__: Jagna.]
~ common_name = "Jagna"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Józefa.]
~ given_names = "Józefa"
~ given_names_key = "jozefa"
~ given_names_meaning_fragment = "Józefa ist die polnische Form von Josepha und bedeutet Gott fügt hinzu"
~ given_names_combination_note = "Der Akzent genügt, um dem Amt zu zeigen, dass auch Vertrautes eine andere Heimat haben kann."
-> cg_after_given_names_written ->
* * [__Höre auf__: Józefa.]
~ common_name = "Józefa"
* * [__Höre auf__: Józia.]
~ common_name = "Józia"
* * [__Höre auf__: Ziuta.]
~ common_name = "Ziuta"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Antonina.]
~ given_names = "Antonina"
~ given_names_key = "antonina"
~ given_names_meaning_fragment = "Antonina ist die weibliche Form von Antoninus und gehört zur römischen Namensschicht"
~ given_names_combination_note = "Römische Herkunft und polnischer Alltag stehen hier ohne Vermittler nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Antonina.]
~ common_name = "Antonina"
* * [__Höre auf__: Tosia.]
~ common_name = "Tosia"
* * [__Höre auf__: Nina.]
~ common_name = "Nina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Helena.]
~ given_names = "Helena"
~ given_names_key = "helena"
~ given_names_meaning_fragment = "Helena geht auf griechisch helene zurück und wird meist als die Leuchtende gedeutet"
~ given_names_combination_note = "Die Bedeutung macht aus dem einfachen Eintrag kein Ornament. Sie gibt ihm Richtung."
-> cg_after_given_names_written ->
* * [__Höre auf__: Helena.]
~ common_name = "Helena"
* * [__Höre auf__: Hela.]
~ common_name = "Hela"
* * [__Höre auf__: Helenka.]
~ common_name = "Helenka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Bronisława.]
~ given_names = "Bronisława"
~ given_names_key = "bronislawa"
~ given_names_meaning_fragment = "Bronisława verbindet slawische Bestandteile für Schutz und Ruhm"
~ given_names_combination_note = "Schutz und Ruhm sind große Wörter für ein kleines Feld. Vielleicht gehören sie gerade deshalb hinein."
-> cg_after_given_names_written ->
* * [__Höre auf__: Bronisława.]
~ common_name = "Bronisława"
* * [__Höre auf__: Bronia.]
~ common_name = "Bronia"
* * [__Höre auf__: Bronka.]
~ common_name = "Bronka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,171 @@
// Generated given-name package choices for Arbeiterherkunft / ungarisch
=== cg_given_names_working_hungarian ===
* [__Heiße__: Mária.]
~ given_names = "Mária"
~ given_names_key = "maria"
~ given_names_meaning_fragment = "Mária verweist im katholischen Gebrauch zuerst auf die Gottesmutter"
~ given_names_combination_note = "Die Akzentsetzung reicht, um aus dem vertrauten Namen eine andere Heimat sprechen zu lassen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Mária.]
~ common_name = "Mária"
* * [__Höre auf__: Mari.]
~ common_name = "Mari"
* * [__Höre auf__: Mariska.]
~ common_name = "Mariska"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Erzsébet.]
~ given_names = "Erzsébet"
~ given_names_key = "erzsebet"
~ given_names_meaning_fragment = "Erzsébet ist die ungarische Form von Elisabeth, mein Gott ist Fülle"
~ given_names_combination_note = "Die Kaiserin mag den Namen berühmt gemacht haben. Auf dem Papier gehört er trotzdem zuerst dir."
-> cg_after_given_names_written ->
* * [__Höre auf__: Erzsébet.]
~ common_name = "Erzsébet"
* * [__Höre auf__: Erzsi.]
~ common_name = "Erzsi"
* * [__Höre auf__: Bözsi.]
~ common_name = "Bözsi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Katalin.]
~ given_names = "Katalin"
~ given_names_key = "katalin"
~ given_names_meaning_fragment = "Katalin ist die ungarische Form von Katharina und wird traditionell mit Reinheit verbunden"
~ given_names_combination_note = "Die vertrauten Kurzformen haben weniger Amtsgewicht und mehr Leben. Das ist kein Nachteil."
-> cg_after_given_names_written ->
* * [__Höre auf__: Katalin.]
~ common_name = "Katalin"
* * [__Höre auf__: Kati.]
~ common_name = "Kati"
* * [__Höre auf__: Kató.]
~ common_name = "Kató"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ilona.]
~ given_names = "Ilona"
~ given_names_key = "ilona"
~ given_names_meaning_fragment = "Ilona ist eine ungarische Form aus dem Namenskreis von Helena, der Leuchtenden"
~ given_names_combination_note = "Die Bedeutung ist alt, die Form ist ungarisch. Beides bleibt im Formular stehen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ilona.]
~ common_name = "Ilona"
* * [__Höre auf__: Ilonka.]
~ common_name = "Ilonka"
* * [__Höre auf__: Ili.]
~ common_name = "Ili"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Anna.]
~ given_names = "Anna"
~ given_names_key = "anna"
~ given_names_meaning_fragment = "Anna geht auf hebräisch Hannah zurück und bedeutet Gnade"
~ given_names_combination_note = "Die Kürze macht die Zeile nicht arm. Sie macht sie schwer auslegbar."
-> cg_after_given_names_written ->
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Anni.]
~ common_name = "Anni"
* * [__Höre auf__: Anka.]
~ common_name = "Anka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Margit.]
~ given_names = "Margit"
~ given_names_key = "margit"
~ given_names_meaning_fragment = "Margit ist die ungarische Form von Margarete und geht auf griechisch margarites, Perle, zurück"
~ given_names_combination_note = "Eine Perle ist kein Wappen. Aber sie ist hart, klein und nicht billig."
-> cg_after_given_names_written ->
* * [__Höre auf__: Margit.]
~ common_name = "Margit"
* * [__Höre auf__: Margitka.]
~ common_name = "Margitka"
* * [__Höre auf__: Gitta.]
~ common_name = "Gitta"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Róza.]
~ given_names = "Róza"
~ given_names_key = "roza"
~ given_names_meaning_fragment = "Róza ist die ungarische Form von Rosa und geht auf lateinisch rosa zurück"
~ given_names_combination_note = "Die Rose bleibt auch im Amtsfeld eine Rose. Das Papier kann sie nur schlecht trocknen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Róza.]
~ common_name = "Róza"
* * [__Höre auf__: Rózsi.]
~ common_name = "Rózsi"
* * [__Höre auf__: Rózika.]
~ common_name = "Rózika"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Júlia.]
~ given_names = "Júlia"
~ given_names_key = "julia"
~ given_names_meaning_fragment = "Júlia ist die ungarische Form von Julia und gehört zur römischen Namensschicht"
~ given_names_combination_note = "Der alte römische Ursprung steht unter ungarischem Akzent. Das ist genauer als jede Vereinfachung."
-> cg_after_given_names_written ->
* * [__Höre auf__: Júlia.]
~ common_name = "Júlia"
* * [__Höre auf__: Juli.]
~ common_name = "Juli"
* * [__Höre auf__: Juliska.]
~ common_name = "Juliska"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ágnes.]
~ given_names = "Ágnes"
~ given_names_key = "agnes"
~ given_names_meaning_fragment = "Ágnes geht auf griechisch hagne zurück und bedeutet rein oder heilig"
~ given_names_combination_note = "Die Strenge der Bedeutung bleibt erhalten, auch wenn die vertraute Form sie fast zärtlich macht."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ágnes.]
~ common_name = "Ágnes"
* * [__Höre auf__: Ági.]
~ common_name = "Ági"
* * [__Höre auf__: Ágika.]
~ common_name = "Ágika"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Zsuzsanna.]
~ given_names = "Zsuzsanna"
~ given_names_key = "zsuzsanna"
~ given_names_meaning_fragment = "Zsuzsanna ist die ungarische Form von Susanna und wird mit der Lilie verbunden"
~ given_names_combination_note = "Der biblische Ursprung und die ungarische Schriftform stehen einander nicht im Weg. Sie teilen sich nur eine Zeile."
-> cg_after_given_names_written ->
* * [__Höre auf__: Zsuzsanna.]
~ common_name = "Zsuzsanna"
* * [__Höre auf__: Zsuzsa.]
~ common_name = "Zsuzsa"
* * [__Höre auf__: Zsuzsi.]
~ common_name = "Zsuzsi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,171 @@
// Generated given-name package choices for Arbeiterherkunft / südlich-adriatisch
=== cg_given_names_working_southern ===
* [__Heiße__: Marija.]
~ given_names = "Marija"
~ given_names_key = "marija"
~ given_names_meaning_fragment = "Marija ist eine südslawische Form von Maria und verweist im katholischen Gebrauch zuerst auf die Gottesmutter"
~ given_names_combination_note = "Die Form steht nah bei Maria und doch nicht ganz dort, wo Wien sie erwarten würde."
-> cg_after_given_names_written ->
* * [__Höre auf__: Marija.]
~ common_name = "Marija"
* * [__Höre auf__: Mara.]
~ common_name = "Mara"
* * [__Höre auf__: Marica.]
~ common_name = "Marica"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ana.]
~ given_names = "Ana"
~ given_names_key = "ana"
~ given_names_meaning_fragment = "Ana geht auf hebräisch Hannah zurück und bedeutet Gnade"
~ given_names_combination_note = "Drei Buchstaben lassen dem Amt wenig Angriffsfläche. Sie lassen dir auch wenig Versteck."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ana.]
~ common_name = "Ana"
* * [__Höre auf__: Anica.]
~ common_name = "Anica"
* * [__Höre auf__: Anka.]
~ common_name = "Anka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Giuseppina.]
~ given_names = "Giuseppina"
~ given_names_key = "giuseppina"
~ given_names_meaning_fragment = "Giuseppina ist die italienische Form von Josepha und bedeutet Gott fügt hinzu"
~ given_names_combination_note = "Die Länge wirkt festlich, auch ohne zweiten Vornamen. Das ist ein kleiner Schutz."
-> cg_after_given_names_written ->
* * [__Höre auf__: Giuseppina.]
~ common_name = "Giuseppina"
* * [__Höre auf__: Pina.]
~ common_name = "Pina"
* * [__Höre auf__: Peppina.]
~ common_name = "Peppina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Teresa.]
~ given_names = "Teresa"
~ given_names_key = "teresa"
~ given_names_meaning_fragment = "Teresa entspricht Therese, deren Herkunft unsicher bleibt"
~ given_names_combination_note = "Die Form reist mühelos zwischen Sprachen. Vielleicht ist das die nützlichste Eigenschaft an ihr."
-> cg_after_given_names_written ->
* * [__Höre auf__: Teresa.]
~ common_name = "Teresa"
* * [__Höre auf__: Teresina.]
~ common_name = "Teresina"
* * [__Höre auf__: Tessa.]
~ common_name = "Tessa"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Antonia.]
~ given_names = "Antonia"
~ given_names_key = "antonia"
~ given_names_meaning_fragment = "Antonia ist die weibliche Form von Antonius und gehört zur römischen Namensschicht"
~ given_names_combination_note = "Der römische Ursprung steht klar genug da, ohne vornehm tun zu müssen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Antonia.]
~ common_name = "Antonia"
* * [__Höre auf__: Tonia.]
~ common_name = "Tonia"
* * [__Höre auf__: Tonina.]
~ common_name = "Tonina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Jelena.]
~ given_names = "Jelena"
~ given_names_key = "jelena"
~ given_names_meaning_fragment = "Jelena ist eine südslawische Form von Helena, der Leuchtenden"
~ given_names_combination_note = "Die Bedeutung ist hell, die Form bleibt südslawisch. Das Formular muss beides zugleich ertragen."
-> cg_after_given_names_written ->
* * [__Höre auf__: Jelena.]
~ common_name = "Jelena"
* * [__Höre auf__: Jela.]
~ common_name = "Jela"
* * [__Höre auf__: Jelka.]
~ common_name = "Jelka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Katarina.]
~ given_names = "Katarina"
~ given_names_key = "katarina"
~ given_names_meaning_fragment = "Katarina ist eine südslawische Form von Katharina und wird traditionell mit Reinheit verbunden"
~ given_names_combination_note = "Die amtliche Zeile ist einfach. Die vertrauten Formen daneben wissen mehr über den Alltag."
-> cg_after_given_names_written ->
* * [__Höre auf__: Katarina.]
~ common_name = "Katarina"
* * [__Höre auf__: Kata.]
~ common_name = "Kata"
* * [__Höre auf__: Katica.]
~ common_name = "Katica"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ivana.]
~ given_names = "Ivana"
~ given_names_key = "ivana"
~ given_names_meaning_fragment = "Ivana ist die südslawische weibliche Form von Johannes und bedeutet Gott ist gnädig"
~ given_names_combination_note = "Die Bedeutung ist fromm, die Form selbstbewusst. Keines von beiden bittet um Erlaubnis."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ivana.]
~ common_name = "Ivana"
* * [__Höre auf__: Iva.]
~ common_name = "Iva"
* * [__Höre auf__: Ivanka.]
~ common_name = "Ivanka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Frančiška.]
~ given_names = "Frančiška"
~ given_names_key = "franciska"
~ given_names_meaning_fragment = "Frančiška ist die südslawische Form von Franziska und bezeichnet ursprünglich die Fränkische oder Französische"
~ given_names_combination_note = "Der Heiligenname bleibt erkennbar, aber die Schrift verrät eine andere Nähe."
-> cg_after_given_names_written ->
* * [__Höre auf__: Frančiška.]
~ common_name = "Frančiška"
* * [__Höre auf__: Francka.]
~ common_name = "Francka"
* * [__Höre auf__: Fani.]
~ common_name = "Fani"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Lucia.]
~ given_names = "Lucia"
~ given_names_key = "lucia"
~ given_names_meaning_fragment = "Lucia geht auf lateinisch lux zurück, Licht"
~ given_names_combination_note = "Die Bedeutung ist so klar, dass sie fast gefährlich wird. Man kann sich nicht gut im Licht verstecken."
-> cg_after_given_names_written ->
* * [__Höre auf__: Lucia.]
~ common_name = "Lucia"
* * [__Höre auf__: Luci.]
~ common_name = "Luci"
* * [__Höre auf__: Lucietta.]
~ common_name = "Lucietta"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
File diff suppressed because it is too large Load Diff
+100
View File
@@ -0,0 +1,100 @@
// ============================================================================
// EIBENREITH.INK - MAIN INDEX / GLOBAL REFERENCE
// ============================================================================
// Root file compiled by Ink. Keep this file to reference vocabularies, include
// order, and the entry divert. Authoring guidance belongs in the design docs;
// episode flow belongs in helpers.ink.
// ============================================================================
// GLOBAL STRUCTURAL LISTS
// ============================================================================
LIST TimeSlot = early_morning, mid_morning, noon, afternoon, evening, early_night, late_night
LIST EpisodeId = no_episode, episode_train_intro, episode_station_midday, episode_carriage_ride, episode_first_dinner
LIST MealPlan = meal_unset, dining_car, station_restaurant, light_refreshment, skipped
LIST Location = loc_train_compartment, loc_train_home_corridor, loc_train_clergy_corridor, loc_train_washroom_corridor, loc_train_washroom, loc_train_dining_car, loc_train_rear_lookout, loc_train_second_class_door, loc_station_platform, loc_station_restaurant, loc_carriage, loc_carriage_halt, loc_crossroad_statue, loc_forest_clearing, loc_roadside_statue, loc_eibenreith_village, loc_hohenreith_arrival, loc_hohenreith_dining_room
LIST Character = viktor
LIST RouteId = composure, detective, lover, sapphic, careless, eccentric
LIST Timer = train_lunch_order
LIST Class = noble, middle, working
LIST Relig = catholic, social, reform, spiritist, wounded
LIST Belief = believer, sceptic, performer, unsure
LIST Body = small_slender, medium_soft, tall_slender, compact_strong
LIST Outfit = charcoal_plum_velvet, black_brown_ivory_lace, blue_grey_practical, dark_green_black_trim, black_veil_severe
LIST Hair = dark_brown, chestnut, dark_blond_ash, auburn
LIST Style = centre_part_low_bun, soft_waves_chignon, braided_low_knot, raised_front_modern
LIST Face = cool_sharp, soft_alert, calm_dark_eyes, fine_controlled, marked_jaw
LIST Def = class_def, name_def, relig_def, body_def, face_def, belief_def, route_language_def, intro_def
LIST DiningCarDiscovery = dining_car_unseen, dining_car_seen
LIST FreshenUpTask = freshen_up_started, freshen_up_done
LIST ExploreTrainTask = explore_train_started, explore_train_done
LIST MirrorTask = mirror_started, mirror_done
LIST PrivacyTask = privacy_started, privacy_taken
LIST UnwellTask = unwell_started, unwell_managed
LIST WashroomFact = washroom_toilet_used
LIST LunchService = lunch_ordered, lunch_served
LIST LunchEating = lunch_first_bite, lunch_second_bite, lunch_finished
LIST Tutorial = tut_choice_intro, tut_traversal_intro, tut_character_intro, tut_dialog_intro, tut_optional_intro
LIST ChoiceGate = return_auto
// ============================================================================
// SYSTEM INCLUDES
// ============================================================================
INCLUDE helpers.ink
INCLUDE buckets.ink
INCLUDE characters.ink
INCLUDE character_generator.ink
// ============================================================================
// CHAPTER 01 STATE LISTS
// ============================================================================
LIST CourtMission = court_mission_unknown, sealed_letter_known, official_cover_understood, household_affair_named, supernatural_pretext_named, hidden_instruction_revealed, mission_contradictions_suspected
LIST ViktorRelationFrame = viktor_frame_unknown, escort_present, secretary_cover_understood, handler_role_understood, skepticism_registered, methods_negotiated, mutual_risk_recognized
LIST ValerieWorkingMask = valerie_mask_unformed, courtly_woman_presented, name_claimed, medium_reputation_invoked, method_as_mask_understood, social_strategy_established
INCLUDE 01_zug.ink
// ============================================================================
// CHAPTER 02 STATE LISTS
// ============================================================================
LIST PublicPersona = public_unseen, noticed_as_lady, noticed_as_official_arrival, station_audience_tested
LIST PublicFact = public_mask_established, public_mask_strained
LIST ServiceWorld = service_unseen, staff_as_function_noticed, staff_as_witnesses_noticed, staff_as_network_suspected, staff_as_power_source_understood
LIST ArrivalLogistics = arrival_logistics_unknown, meal_plan_chosen, carriage_arranged, baggage_handed_over, road_departure_ready
LIST ArrivalMealFact = meal_taken_in_train, meal_taken_at_station, meal_skipped_or_light
INCLUDE 02_bahnhof.ink
// ============================================================================
// CHAPTER 03 STATE LISTS
// ============================================================================
LIST OldSiteKnowledge = old_site_unknown, managed_landscape_seen, religious_markers_seen, old_boundary_felt, old_name_heard, prechristian_underlayer_suspected, old_site_has_claim
LIST ThresholdCrossing = ordinary_travel, city_order_receding, valley_order_emerging, local_rules_beginning, return_feels_less_simple
LIST SupernaturalFaculty = faculty_unframed, faculty_committed
LIST FacultyFrame = no_claim_made, intuition_framed, sensory_anomaly_framed, performance_framed
LIST AfternoonOutcome = punctual_arrival_preserved, village_knowledge_prioritised, arrival_form_compromised
INCLUDE 03_kutschenfahrt.ink
INCLUDE 03_anreise_routes.ink
// ============================================================================
// CHAPTER 04 STATE LISTS
// ============================================================================
LIST EibenreithPublicFace = eibenreith_face_unknown, curious, cautious, suspicious, unsettled, openly_watching_valerie
LIST VillageReligiousTension = village_religion_unknown, church_as_center_seen, christian_surface_noted, older_presence_hint, two_orders_in_conflict, village_fear_has_form
LIST HohenreithArrivalFrame = hohenreith_arrival_unknown, expected_guest, amalia_seen_before_dinner
LIST HohenreithArrivalFact = punctual_official_guest, delayed_after_village_detour, household_form_preserved, household_form_disturbed
INCLUDE 04_ankunft.ink
// ============================================================================
// CHAPTER 05 STATE LISTS
// ============================================================================
LIST FirstDinner = dinner_not_started, household_assembled, seating_order_read, amalia_seen_as_spoken_for, valerie_tested_at_table, dinner_completed
// INCLUDE 05_dinner.ink
// ============================================================================
// ENTRY POINT
// ============================================================================
-> start_game
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

@@ -0,0 +1,71 @@
// Generated surname choices for Bürgertum / deutsch-österreichisch
=== cg_surnames_middle_austrian ===
* [__Führe den Namen__: Gruber.]
~ surname = "Gruber"
~ surname_written_form = "Gruber"
~ surname_comment = "Der Familienname leitet sich von Grube oder einem Graben ab. Er verweist auf Gelände, Arbeit am Boden und eine Herkunft, die nicht durch Titel, sondern durch Ort lesbar wird."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Huber.]
~ surname = "Huber"
~ surname_written_form = "Huber"
~ surname_comment = "Die Herkunft liegt beim Hube- oder Hubenbesitz, also einem Bauernhof bestimmter Größe. Auf dem Formular bleibt davon ein bürgerlich gewordener Hinweis auf Grund und Arbeit."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Bauer.]
~ surname = "Bauer"
~ surname_written_form = "Bauer"
~ surname_comment = "Die Bedeutung ist unmittelbar: der Bauer, der Landwirt. Gerade weil das Wort so offen ist, lässt es wenig Raum für erfundene Vornehmheit."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Wagner.]
~ surname = "Wagner"
~ surname_written_form = "Wagner"
~ surname_comment = "Der Familienname bezeichnet den Wagenbauer. Er führt ein Handwerk mit sich, das Bewegung, Holz und Eisen lange vor jeder Eisenbahn kannte."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Müller.]
~ surname = "Müller"
~ surname_written_form = "Müller"
~ surname_comment = "Die Ableitung vom Müllerhandwerk ist eindeutig. Korn, Wasserrecht und tägliche Arbeit stehen im Hintergrund, auch wenn die Unterschrift inzwischen sauberer ist als die Hände der Vorfahren."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Pichler.]
~ surname = "Pichler"
~ surname_written_form = "Pichler"
~ surname_comment = "Die Form gehört zu Orts- und Hofnamen, meist zu Bühel oder Pichl, also einer Anhöhe. Der Eintrag trägt damit Landschaft in sich, nicht Rang."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Steiner.]
~ surname = "Steiner"
~ surname_written_form = "Steiner"
~ surname_comment = "Die Ableitung führt zu Stein, steinigem Gelände oder einem entsprechenden Wohnort. Das ist keine Zierde, sondern ein sehr haltbarer Ursprung."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Mayer.]
~ surname = "Mayer"
~ surname_written_form = "Mayer"
~ surname_comment = "Die Form geht auf Meier oder Maier zurück, ursprünglich Verwalter eines Hofes. Bürgerlich gelesen bleibt darin Verwaltung, Besitznähe und ein Stück dienende Autorität."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Moser.]
~ surname = "Moser"
~ surname_written_form = "Moser"
~ surname_comment = "Die Herkunft liegt beim Moos, Moor oder feuchten Grund. Damit steht eine Landschaft im Formular, die man nicht adelig machen muss, um sie ernst zu nehmen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Hofer.]
~ surname = "Hofer"
~ surname_written_form = "Hofer"
~ surname_comment = "Die Bedeutung führt zum Hof oder zu jemandem, der bei einem Hof wohnte oder arbeitete. Im bürgerlichen Formular bleibt daraus ein knapper Herkunftsnachweis."
-> cg_after_surname_written ->
->->
@@ -0,0 +1,71 @@
// Generated surname choices for Bürgertum / böhmisch-mährisch
=== cg_surnames_middle_bohemian ===
* [__Führe den Namen__: Nováková.]
~ surname = "Nováková"
~ surname_written_form = "Nováková"
~ surname_comment = "Die Form gehört zu Novák, dem Neuen oder Neuankömmling. Im Formular bleibt davon die Spur einer Familie, die irgendwann erst an einen Ort gekommen sein muss."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Svobodová.]
~ surname = "Svobodová"
~ surname_written_form = "Svobodová"
~ surname_comment = "Die Ableitung führt zu svoboda, Freiheit. Das ist keine Standesbehauptung, aber eine auffallend deutliche Bedeutung für eine Zeile voller Amtszwecke."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Novotná.]
~ surname = "Novotná"
~ surname_written_form = "Novotná"
~ surname_comment = "Die Herkunft liegt wie bei Novák beim Neuen. Die weibliche Form macht daraus eine tschechische Familienzeile, die Veränderung als Ursprung bewahrt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Dvořáková.]
~ surname = "Dvořáková"
~ surname_written_form = "Dvořáková"
~ surname_comment = "Die Form geht auf dvůr zurück, Hof oder Herrenhof. Damit steht im Hintergrund weniger ein Titel als die Nähe zu einem bewirtschafteten Ort."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Černá.]
~ surname = "Černá"
~ surname_written_form = "Černá"
~ surname_comment = "Die Bedeutung ist schwarz oder dunkel. Solche Farbnamen sind alt, schlicht und genau genug, um Herkunft ohne jede Zierde festzuhalten."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Procházková.]
~ surname = "Procházková"
~ surname_written_form = "Procházková"
~ surname_comment = "Die Ableitung gehört zum Umhergehen oder Spazieren. Im Familiennamen bleibt daraus eine Bewegung stehen, die längst zur festen Unterschrift geworden ist."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kučerová.]
~ surname = "Kučerová"
~ surname_written_form = "Kučerová"
~ surname_comment = "Die Herkunft liegt bei kučeravý, kraus oder lockig. Ein körperliches Merkmal ist hier zur amtlichen Familienform geworden."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Veselá.]
~ surname = "Veselá"
~ surname_written_form = "Veselá"
~ surname_comment = "Die Bedeutung ist fröhlich oder heiter. Das wirkt im Formular fast ungehörig lebendig, bleibt aber eine nüchterne sprachliche Tatsache."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Horáková.]
~ surname = "Horáková"
~ surname_written_form = "Horáková"
~ surname_comment = "Die Form verweist auf hora, den Berg, und damit auf Menschen aus dem Bergland oder von der Höhe. Es ist eine geographische Herkunft, keine Zierform."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Němcová.]
~ surname = "Němcová"
~ surname_written_form = "Němcová"
~ surname_comment = "Die Ableitung bezeichnet die Deutsche oder eine Person deutscher Zugehörigkeit. In Böhmen ist das nie nur eine harmlose Herkunftsangabe."
-> cg_after_surname_written ->
->->
@@ -0,0 +1,71 @@
// Generated surname choices for Bürgertum / galizisch-bukowinisch
=== cg_surnames_middle_eastern ===
* [__Führe den Namen__: Nowak.]
~ surname = "Nowak"
~ surname_written_form = "Nowak"
~ surname_comment = "Die Form bezeichnet den Neuen oder Neuankömmling. Im Formular bleibt daraus eine Herkunft, die Zugehörigkeit nicht erbt, sondern irgendwann erworben haben muss."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kowalska.]
~ surname = "Kowalska"
~ surname_written_form = "Kowalska"
~ surname_comment = "Die Ableitung führt zum Schmied. Ein Handwerk steht damit unter der Unterschrift, auch wenn die Hände längst Feder statt Hammer halten."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Wiśniewska.]
~ surname = "Wiśniewska"
~ surname_written_form = "Wiśniewska"
~ surname_comment = "Die Herkunft liegt bei wiśnia, der Kirsche, oder bei einem entsprechend benannten Ort. Eine Landschaft aus Obstgärten wird zur amtlichen Form."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Wójcik.]
~ surname = "Wójcik"
~ surname_written_form = "Wójcik"
~ surname_comment = "Die Form gehört zu wójt, dem Gemeindevorsteher oder Vogt. Sie bewahrt einen kleinen Verwaltungsrang, auch wenn daraus kein Adel wird."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kowalczyk.]
~ surname = "Kowalczyk"
~ surname_written_form = "Kowalczyk"
~ surname_comment = "Die Bildung ist eine Verkleinerungs- oder Ableitungsform zum Schmied. Das Handwerk erscheint nicht großspurig, aber unübersehbar."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kamińska.]
~ surname = "Kamińska"
~ surname_written_form = "Kamińska"
~ surname_comment = "Die Ableitung führt zu kamień, Stein, oder zu einem steinigen Ort. Das gibt der Zeile einen festen, nüchternen Ursprung."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Lewandowska.]
~ surname = "Lewandowska"
~ surname_written_form = "Lewandowska"
~ surname_comment = "Die Form verweist meist auf Orte namens Lewandów oder verwandte Ortsnamen. Herkunft wird hier geographisch, nicht ständisch erklärt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Dąbrowska.]
~ surname = "Dąbrowska"
~ surname_written_form = "Dąbrowska"
~ surname_comment = "Die Ableitung führt zu dąb, der Eiche, oder zu Dąbrowa, dem Eichenhain. Im Formular steht damit eine feste, alte Landschaft."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Zielińska.]
~ surname = "Zielińska"
~ surname_written_form = "Zielińska"
~ surname_comment = "Die Herkunft liegt bei zieleń, dem Grün, oder bei entsprechenden Ortsnamen. Eine Farbe wird zur Familienzeile, ohne dekorativ gemeint zu sein."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Szymańska.]
~ surname = "Szymańska"
~ surname_written_form = "Szymańska"
~ surname_comment = "Die Form gehört zu Szymon, der polnischen Form von Simon. Damit trägt der Familienname eine biblische Wurzel in weltlicher Gestalt."
-> cg_after_surname_written ->
->->
@@ -0,0 +1,71 @@
// Generated surname choices for Bürgertum / ungarisch
=== cg_surnames_middle_hungarian ===
* [__Führe den Namen__: Tóth.]
~ surname = "Tóth"
~ surname_written_form = "Tóth"
~ surname_comment = "Die Form bezeichnete im Ungarischen oft Slawen, besonders Slowaken. Damit steht eine ethnische Herkunft im Formular, nicht bloß eine Familienlaune."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Nagy.]
~ surname = "Nagy"
~ surname_written_form = "Nagy"
~ surname_comment = "Die Bedeutung ist groß. Als Familienname ist das schlicht, aber schwer ganz unauffällig zu tragen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Szabó.]
~ surname = "Szabó"
~ surname_written_form = "Szabó"
~ surname_comment = "Die Ableitung bezeichnet den Schneider. Ein städtisches Handwerk steht damit auf dem Papier, sauber genug für bürgerliche Lesbarkeit."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kovács.]
~ surname = "Kovács"
~ surname_written_form = "Kovács"
~ surname_comment = "Die Bedeutung ist Schmied. Das Handwerk bleibt unter der Schrift sichtbar, auch wenn das Formular keine Werkstatt nennt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Varga.]
~ surname = "Varga"
~ surname_written_form = "Varga"
~ surname_comment = "Die Form bezeichnet den Schuster oder Lederarbeiter. Sie hält ein Handwerk fest, das näher an Alltag und Straße liegt als an Salon und Amt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Horváth.]
~ surname = "Horváth"
~ surname_written_form = "Horváth"
~ surname_comment = "Die Bedeutung verweist auf kroatische Herkunft. In der Monarchie ist das keine Nebensache, sondern eine kleine Landkarte im Namen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kiss.]
~ surname = "Kiss"
~ surname_written_form = "Kiss"
~ surname_comment = "Die Bedeutung ist klein. Das kann Demut lesen lassen, aber auch Tarnung, je nachdem, wer das Formular in die Hand nimmt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Molnár.]
~ surname = "Molnár"
~ surname_written_form = "Molnár"
~ surname_comment = "Die Ableitung bezeichnet den Müller. Korn, Wasser und Arbeit stehen im Hintergrund, in ungarischer Form und ohne deutsche Übersetzung."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Németh.]
~ surname = "Németh"
~ surname_written_form = "Németh"
~ surname_comment = "Die Bedeutung bezeichnet die Deutsche oder den Deutschen. In Ungarn ist das eine Herkunftsmarke, die sofort politischer wirkt, als ein Formular zugibt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Farkas.]
~ surname = "Farkas"
~ surname_written_form = "Farkas"
~ surname_comment = "Die Bedeutung ist Wolf. Als Familienname trägt das Tier keine Romantik, sondern eine alte, knappe Bezeichnung."
-> cg_after_surname_written ->
->->
@@ -0,0 +1,71 @@
// Generated surname choices for Bürgertum / südlich-adriatisch
=== cg_surnames_middle_southern ===
* [__Führe den Namen__: Rossi.]
~ surname = "Rossi"
~ surname_written_form = "Rossi"
~ surname_comment = "Die Form geht auf rosso, rot, zurück. Ein Farbmerkmal ist hier zur Familienform geworden, knapp und sofort verständlich."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Rizzi.]
~ surname = "Rizzi"
~ surname_written_form = "Rizzi"
~ surname_comment = "Die Herkunft liegt bei riccio, kraus oder lockig. Ein körperliches Merkmal bleibt erhalten, auch wenn niemand mehr danach aussehen muss."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Sartori.]
~ surname = "Sartori"
~ surname_written_form = "Sartori"
~ surname_comment = "Die Ableitung bezeichnet Schneider. Das ist ein städtisches Handwerk, ordentlich genug für bürgerliche Rechnungen und nah genug am Körper, um nie ganz abstrakt zu werden."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: De Marchi.]
~ surname = "De Marchi"
~ surname_written_form = "De Marchi"
~ surname_comment = "Die Form verweist auf die Marken oder Grenzgebiete. Im Formular bleibt davon eine Herkunft an der Kante politischer Räume."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Fonda.]
~ surname = "Fonda"
~ surname_written_form = "Fonda"
~ surname_comment = "Die Herkunft ist orts- oder geländebezogen und wird im nordadriatischen Raum geführt. Sie gibt keine Bedeutung vor, sondern verweist auf eine lokale Familienlinie."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Slataper.]
~ surname = "Slataper"
~ surname_written_form = "Slataper"
~ surname_comment = "Die Form gehört zur vielsprachigen nordadriatischen Namenwelt. Im Formular steht damit keine glatte Herkunft, sondern eine, die mehrere Ränder der Monarchie berührt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Piani.]
~ surname = "Piani"
~ surname_written_form = "Piani"
~ surname_comment = "Die Ableitung führt zu piano, Ebene oder flaches Gelände. Aus Landschaft wird hier eine nüchterne Familienangabe."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Vidmar.]
~ surname = "Vidmar"
~ surname_written_form = "Vidmar"
~ surname_comment = "Die slowenische Form wird meist mit dem Holz- oder Waldarbeiter verbunden. Ein Arbeitszusammenhang steht im Hintergrund, nicht bloß ein Ort."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Novak.]
~ surname = "Novak"
~ surname_written_form = "Novak"
~ surname_comment = "Die Bedeutung ist der Neue oder Neuankömmling. Zugehörigkeit erscheint hier als etwas Gewordenes, nicht als uralte Selbstverständlichkeit."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kovač.]
~ surname = "Kovač"
~ surname_written_form = "Kovač"
~ surname_comment = "Die Bedeutung ist Schmied. Das Handwerk bleibt sichtbar, auch wenn der Eintrag längst nicht mehr nach Ruß und Eisen riecht."
-> cg_after_surname_written ->
->->
@@ -0,0 +1,71 @@
// Generated surname choices for Adel / deutsch-österreichisch
=== cg_surnames_noble_austrian ===
* [__Führe den Namen__: Freiin von Rauhenfels.]
~ surname = "Rauhenfels"
~ surname_written_form = "Freiin von Rauhenfels"
~ surname_comment = "Die Bestandteile verweisen auf rau und Fels. Das Adelsprädikat macht daraus keine Bedeutung, sondern einen behaupteten Ort von Härte und Dauer."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Traunegg.]
~ surname = "Traunegg"
~ surname_written_form = "Freiin von Traunegg"
~ surname_comment = "Traun verweist auf eine reale österreichische Gewässer- und Ortsnamenschicht, Egg auf Ecke, Kante oder Geländevorsprung. Das Formular trägt damit Besitznähe in geographischer Form."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Ebenwald.]
~ surname = "Ebenwald"
~ surname_written_form = "Freiin von Ebenwald"
~ surname_comment = "Ebenwald verbindet ebenes Gelände mit Wald. Die Form behauptet eine Landschaft, aus der der Stand seine Selbstverständlichkeit ziehen darf."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Arnsberg.]
~ surname = "Arnsberg"
~ surname_written_form = "Freiin von Arnsberg"
~ surname_comment = "Arn verweist auf den Adler, Berg auf Höhe und befestigtes Gelände. Das Prädikat macht daraus eine Herkunft, die Abstand schon im Wort trägt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Reichenau.]
~ surname = "Reichenau"
~ surname_written_form = "Freiin von Reichenau"
~ surname_comment = "Reichenau verbindet reich mit Au, also wassernahem Wiesenland. Als Adelsname verwandelt es fruchtbares Gelände in sozialen Abstand."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Waldstätten.]
~ surname = "Waldstätten"
~ surname_written_form = "Freiin von Waldstätten"
~ surname_comment = "Waldstätten bezeichnet Waldorte oder Siedlungen am Wald. Die Mehrzahl gibt dem Besitz im Formular fast den Anschein einer kleinen Landkarte."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Greiffenstein.]
~ surname = "Greiffenstein"
~ surname_written_form = "Freiin von Greiffenstein"
~ surname_comment = "Greif bezeichnet das Wappentier, Stein den festen Ort. Heraldik und Gelände fallen hier so passend zusammen, dass ein Amt kaum nachfragen würde."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Lichtenau.]
~ surname = "Lichtenau"
~ surname_written_form = "Freiin von Lichtenau"
~ surname_comment = "Lichtenau verbindet licht oder hell mit Au, dem wasserreichen Wiesenland. Die Form macht offene Landschaft zu adliger Herkunft."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Altenried.]
~ surname = "Altenried"
~ surname_written_form = "Freiin von Altenried"
~ surname_comment = "Altenried verbindet alt mit Ried, also sumpfigem oder gerodetem Gelände. Die Herkunft beansprucht mehr Dauer als jede einzelne Person, die sie trägt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Hartenfels.]
~ surname = "Hartenfels"
~ surname_written_form = "Freiin von Hartenfels"
~ surname_comment = "Hartenfels verbindet hart mit Fels. Das ist eine fast überdeutliche Standesbehauptung aus Stein, Widerstand und Dauer."
-> cg_after_surname_written ->
->->
@@ -0,0 +1,71 @@
// Generated surname choices for Adel / böhmisch-mährisch
=== cg_surnames_noble_bohemian ===
* [__Führe den Namen__: Freiin von Hradek.]
~ surname = "Hradek"
~ surname_written_form = "Freiin von Hradek"
~ surname_comment = "Hrádek bedeutet kleine Burg oder befestigter Ort. Das Adelsprädikat macht aus der Verkleinerung keinen minderen Anspruch, sondern eine genau benannte Herkunft."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Wranitz.]
~ surname = "Wranitz"
~ surname_written_form = "Freiin von Wranitz"
~ surname_comment = "Wranitz gehört zu jener deutsch geschriebenen böhmischen Ortsnamenschicht, in der Herkunft bereits als Amtsform erscheint. Auf dem Formular steht damit nicht nur Familie, sondern Gegend."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Zelenberg.]
~ surname = "Zelenberg"
~ surname_written_form = "Freiin von Zelenberg"
~ surname_comment = "Zelen verweist im Tschechischen auf Grün, Berg auf Höhe und Gelände. Die Zusammensetzung macht Landschaft zu einem Anspruch, der deutsch genug geschrieben ist, um amtlich glatt zu laufen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Czerninau.]
~ surname = "Czerninau"
~ surname_written_form = "Freiin von Czerninau"
~ surname_comment = "Czerninau trägt die schwarze Wurzel des slawischen čern in deutscher Schreibgestalt weiter. Das Prädikat macht aus Farbe und Ort eine standesfähige Herkunft."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Taboritz.]
~ surname = "Taboritz"
~ surname_written_form = "Freiin von Taboritz"
~ surname_comment = "Taboritz verweist auf die böhmische Ortsnamenschicht um Tábor und seine deutschen Ableitungen. Die Endung macht den Ort kleiner, nicht den Anspruch."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Kralowitz.]
~ surname = "Kralowitz"
~ surname_written_form = "Freiin von Kralowitz"
~ surname_comment = "Kralowitz enthält die slawische Königs-Wurzel král in deutscher Amtsform. Die Herkunft trägt damit Herrschaft im Wort, auch bevor irgendein Besitz genannt wird."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Rosenek.]
~ surname = "Rosenek"
~ surname_written_form = "Freiin von Rosenek"
~ surname_comment = "Rosenek stellt die Rose in eine verkleinernde oder ortsbildende Form. Was weich erscheinen darf, bleibt durch das Prädikat trotzdem Besitz- und Herkunftsangabe."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Dobrawitz.]
~ surname = "Dobrawitz"
~ surname_written_form = "Freiin von Dobrawitz"
~ surname_comment = "Dobrawitz geht auf die slawische Namensschicht um dobr zurück, gut oder tüchtig. Die deutsche Endung macht daraus eine Herkunft, die im Formular bereits geordnet erscheint."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Sazawa.]
~ surname = "Sazawa"
~ surname_written_form = "Freiin von Sazawa"
~ surname_comment = "Sazawa verweist auf die böhmische Sázava. Ein Flussname wird hier zur Familienherkunft, als dürfe Wasser selbst Besitz bezeugen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Beneschau.]
~ surname = "Beneschau"
~ surname_written_form = "Freiin von Beneschau"
~ surname_comment = "Beneschau ist die deutsche Form von Benešov und bewahrt den Personennamen Beneš im Ortsnamen. Das Formular übernimmt diese Herkunft, als sei sie eine kleine Landkarte."
-> cg_after_surname_written ->
->->
@@ -0,0 +1,71 @@
// Generated surname choices for Adel / galizisch-bukowinisch
=== cg_surnames_noble_eastern ===
* [__Führe den Namen__: Freiin von Zaleska.]
~ surname = "Zaleska"
~ surname_written_form = "Freiin von Zaleska"
~ surname_comment = "Za lasem bedeutet hinter dem Wald. In adliger Form wird daraus eine Herkunft jenseits einer Grenze, die zugleich geographisch und gesellschaftlich wirkt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Wisnowitz.]
~ surname = "Wisnowitz"
~ surname_written_form = "Freiin von Wisnowitz"
~ surname_comment = "Wisnowitz steht in der deutsch geschriebenen Ortsnamenschicht Galiziens. Die Form trägt einen Ort ins Formular, ohne ihn erklären zu müssen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Tarnowicz.]
~ surname = "Tarnowicz"
~ surname_written_form = "Freiin von Tarnowicz"
~ surname_comment = "Tarnowicz verweist auf den Namenskreis um Tarnów und die polnische Herkunftsendung. Der Eintrag macht aus Ortsnähe eine amtlich gefasste Linie."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Lembergau.]
~ surname = "Lembergau"
~ surname_written_form = "Freiin von Lembergau"
~ surname_comment = "Lembergau bindet die deutsche Form von Lwów an eine Au- oder Landschaftsbildung. Die Herkunft steht damit zwischen Stadt, Land und habsburgischer Verwaltungssprache."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Stryjewicz.]
~ surname = "Stryjewicz"
~ surname_written_form = "Freiin von Stryjewicz"
~ surname_comment = "Stryjewicz verweist auf Stryj und eine slawische Abstammungsform. Der Ort bleibt im Namen sichtbar, auch wenn das Formular ihn zur Familie glättet."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Dąbrowa.]
~ surname = "Dąbrowa"
~ surname_written_form = "Freiin von Dąbrowa"
~ surname_comment = "Dąbrowa bezeichnet im Polnischen einen Eichenwald. Das Adelsprädikat macht aus Baumlandschaft Herkunft, Besitznähe und ein wenig Dauer."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Zielona.]
~ surname = "Zielona"
~ surname_written_form = "Freiin von Zielona"
~ surname_comment = "Zielona ist die weibliche Form von grün im Polnischen und steht häufig in Ortsnamen. Auf dem Formular wird Farbe zu Landschaft und Landschaft zu Herkunft."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Brody.]
~ surname = "Brody"
~ surname_written_form = "Freiin von Brody"
~ surname_comment = "Brody ist ein galizischer Ortsname mit Grenz- und Handelsgeschichte. Die Kürze wirkt nicht schlicht, sondern amtlich schwer."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Rohatyn.]
~ surname = "Rohatyn"
~ surname_written_form = "Freiin von Rohatyn"
~ surname_comment = "Rohatyn bezeichnet einen realen galizischen Ort. Als Adelsname wird daraus eine Herkunft, die das Amt nicht beschreiben, sondern nur abschreiben soll."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Czernowice.]
~ surname = "Czernowice"
~ surname_written_form = "Freiin von Czernowice"
~ surname_comment = "Czernowice bewahrt die schwarze Wurzel des slawischen čern in Ortsform. Im Formular trägt sie Randlage, Mehrsprachigkeit und Stand zugleich."
-> cg_after_surname_written ->
->->
@@ -0,0 +1,71 @@
// Generated surname choices for Adel / ungarisch
=== cg_surnames_noble_hungarian ===
* [__Führe den Namen__: Freiin von Farkasháza.]
~ surname = "Farkasháza"
~ surname_written_form = "Freiin von Farkasháza"
~ surname_comment = "Farkas bedeutet Wolf, háza bedeutet Haus. Die Herkunft beansprucht damit einen Ort, der mehr nach Besitz als nach bloßer Wohnung aussieht."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Sárkányfalva.]
~ surname = "Sárkányfalva"
~ surname_written_form = "Freiin von Sárkányfalva"
~ surname_comment = "Sárkány bedeutet Drache, falva bedeutet Dorf. Das Adelsprädikat macht aus einem Drachenort eine Herkunft, die niemand für bescheiden halten muss."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Horváthfalva.]
~ surname = "Horváthfalva"
~ surname_written_form = "Freiin von Horváthfalva"
~ surname_comment = "Horváth bezeichnet im Ungarischen den Kroaten, falva das Dorf. Der Eintrag trägt Grenz- und Herkunftsgeschichte in einer Form, die das Amt einfach übernimmt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Nagyberek.]
~ surname = "Nagyberek"
~ surname_written_form = "Freiin von Nagyberek"
~ surname_comment = "Nagy bedeutet groß, berek bezeichnet Hain, Buschland oder feuchtes Gehölz. Die Form macht Landschaft zu Besitznähe und Besitznähe zu Stand."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Keresztúr.]
~ surname = "Keresztúr"
~ surname_written_form = "Freiin von Keresztúr"
~ surname_comment = "Kereszt verweist auf das Kreuz, úr auf Herr oder Herrschaft. Die Herkunft trägt Frömmigkeit und Rang in ungewöhnlich dichter Form zusammen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Várhegy.]
~ surname = "Várhegy"
~ surname_written_form = "Freiin von Várhegy"
~ surname_comment = "Vár bedeutet Burg, hegy bedeutet Berg. Die Zusammensetzung stellt Höhe und Befestigung voran, bevor die Person überhaupt beschrieben wird."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Szalavár.]
~ surname = "Szalavár"
~ surname_written_form = "Freiin von Szalavár"
~ surname_comment = "Szalavár verweist auf einen ungarischen Ortsnamen mit vár, der Burg. Auf Papier wird daraus Herkunft, die sich selbst befestigt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Báthor.]
~ surname = "Báthor"
~ surname_written_form = "Freiin von Báthor"
~ surname_comment = "Báthor steht nahe bei bátor, tapfer. Die Form trägt Mut als Herkunftswort, ohne daraus eine offene Selbstbeschreibung zu machen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Feketehalom.]
~ surname = "Feketehalom"
~ surname_written_form = "Freiin von Feketehalom"
~ surname_comment = "Fekete bedeutet schwarz, halom bedeutet Hügel. Der Eintrag macht dunkles Gelände zu Herkunft und Herkunft zu amtlicher Distanz."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Aranyos.]
~ surname = "Aranyos"
~ surname_written_form = "Freiin von Aranyos"
~ surname_comment = "Arany bedeutet Gold. Die Herkunft braucht keine weitere Verzierung, weil das Wort selbst schon Wert, Farbe und Anspruch mitbringt."
-> cg_after_surname_written ->
->->
@@ -0,0 +1,71 @@
// Generated surname choices for Adel / südlich-adriatisch
=== cg_surnames_noble_southern ===
* [__Führe den Namen__: Freiin von Valcroce.]
~ surname = "Valcroce"
~ surname_written_form = "Freiin von Valcroce"
~ surname_comment = "Valcroce verbindet valle, Tal, mit croce, Kreuz. Die Herkunft trägt Landschaft und katholisches Zeichen in einer Form, die südlich und amtlich zugleich bleibt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von San Dorigo.]
~ surname = "San Dorigo"
~ surname_written_form = "Freiin von San Dorigo"
~ surname_comment = "San Dorigo stellt einen Heiligennamen voran und macht ihn zum Ort. Das Adelsprädikat verwandelt Frömmigkeit in Herkunft."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Carstberg.]
~ surname = "Carstberg"
~ surname_written_form = "Freiin von Carstberg"
~ surname_comment = "Carstberg verbindet die Karstlandschaft mit der deutschen Bergform. Der Eintrag macht aus Stein, Höhe und Verwaltungssprache eine standesfähige Herkunft."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Adelsberg.]
~ surname = "Adelsberg"
~ surname_written_form = "Freiin von Adelsberg"
~ surname_comment = "Adelsberg ist die deutsche Form von Postojna. Die Bezeichnung führt den Stand fast zu deutlich im Wort, als könne Geographie selbst eine Rangordnung bestätigen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Krainburg.]
~ surname = "Krainburg"
~ surname_written_form = "Freiin von Krainburg"
~ surname_comment = "Krainburg bindet die Krain an die Burgform. Damit stehen Land, Befestigung und Verwaltungssprache schon im Eintrag bereit."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Aurisina.]
~ surname = "Aurisina"
~ surname_written_form = "Freiin von Aurisina"
~ surname_comment = "Aurisina verweist auf den adriatischen Karst bei Triest. Die Form trägt Küste, Stein und Randlage in einen sehr höflichen Amtsraum."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Montenero.]
~ surname = "Montenero"
~ surname_written_form = "Freiin von Montenero"
~ surname_comment = "Montenero bedeutet schwarzer Berg. Das Prädikat macht aus dunkler Höhe eine Herkunft, die nicht erklärt werden will."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Zupanegg.]
~ surname = "Zupanegg"
~ surname_written_form = "Freiin von Zupanegg"
~ surname_comment = "Zupanegg verbindet den südslawischen Župan, einen Amts- oder Würdenträger, mit der deutschen Egg-Form. Schon die Bestandteile handeln von Rang und Gelände."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Hohenkarst.]
~ surname = "Hohenkarst"
~ surname_written_form = "Freiin von Hohenkarst"
~ surname_comment = "Hohenkarst stellt Höhe und Karstlandschaft nebeneinander. Die Herkunft ist steinig, trocken und schwer zu verrücken."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Castelreith.]
~ surname = "Castelreith"
~ surname_written_form = "Freiin von Castelreith"
~ surname_comment = "Castelreith verbindet castel, Burg, mit der deutschen Reith- oder Rodungsform. Die Zusammensetzung macht Grenzland zu geordnetem Besitz."
-> cg_after_surname_written ->
->->
@@ -0,0 +1,71 @@
// Generated surname choices for Arbeiterherkunft / deutsch-österreichisch
=== cg_surnames_working_austrian ===
* [__Führe den Namen__: Berger.]
~ surname = "Berger"
~ surname_written_form = "Berger"
~ surname_comment = "Die Herkunft verweist auf jemanden am Berg oder aus bergigem Gelände. Das Formular bekommt damit keine feine Abstammung, sondern eine klare Ortsangabe."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Leitner.]
~ surname = "Leitner"
~ surname_written_form = "Leitner"
~ surname_comment = "Die Ableitung gehört zu Leite, dem Hang oder der abschüssigen Stelle. Solche Namen entstehen dort, wo Landschaft genauer ist als Stand."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Fuchs.]
~ surname = "Fuchs"
~ surname_written_form = "Fuchs"
~ surname_comment = "Der Tiername steht für Rotfuchs, Schlauheit und bäuerlich geläufige Beobachtung. Er braucht kein Prädikat, um im Gedächtnis zu bleiben."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Eder.]
~ surname = "Eder"
~ surname_written_form = "Eder"
~ surname_comment = "Die Form ist in österreichischen Gegenden verbreitet und verweist auf Orts- oder Hofnamen. Sie steht trocken darunter, wie etwas, das schon vor dem Amt da war."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Fischer.]
~ surname = "Fischer"
~ surname_written_form = "Fischer"
~ surname_comment = "Der Berufsname verweist auf Wasser, Netze und geduldige Hände. Eine Arbeit wird zur Herkunft, ohne deshalb niedriger zu sein."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Schmid.]
~ surname = "Schmid"
~ surname_written_form = "Schmid"
~ surname_comment = "Der Berufsname bezeichnet den Schmied. Eisen, Feuer und Werkzeug stehen im Hintergrund, auch wenn das Formular nur sechs Buchstaben sieht."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Winkler.]
~ surname = "Winkler"
~ surname_written_form = "Winkler"
~ surname_comment = "Die Ableitung verweist auf Winkel, Ecke oder abgelegene Stelle. Das ist kein Schmuck, sondern eine genaue kleine Geographie."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Schwarz.]
~ surname = "Schwarz"
~ surname_written_form = "Schwarz"
~ surname_comment = "Die Farbbezeichnung kann auf Haar, Kleidung, Hautfarbe im alten Sinn oder Hauszeichen zurückgehen. Das Formular lässt offen, welche Erinnerung daran hängt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Weber.]
~ surname = "Weber"
~ surname_written_form = "Weber"
~ surname_comment = "Der Berufsname bezeichnet die Arbeit am Webstuhl. Faden, Muster und Ausdauer stehen in einer Zeile, die andere für schlicht halten dürfen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Maier.]
~ surname = "Maier"
~ surname_written_form = "Maier"
~ surname_comment = "Die Form geht auf den Meier zurück, den Verwalter eines Hofes. Zwischen Arbeit und Verantwortung liegt hier weniger Abstand, als feine Leute gern behaupten."
-> cg_after_surname_written ->
->->
@@ -0,0 +1,71 @@
// Generated surname choices for Arbeiterherkunft / böhmisch-mährisch
=== cg_surnames_working_bohemian ===
* [__Führe den Namen__: Pokorná.]
~ surname = "Pokorná"
~ surname_written_form = "Pokorná"
~ surname_comment = "Pokorná bedeutet demütig oder bescheiden. Das Formular darf daran gern falsche Schlüsse ziehen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Marešová.]
~ surname = "Marešová"
~ surname_written_form = "Marešová"
~ surname_comment = "Die Form leitet sich von Mareš ab, einer tschechischen Namenform aus dem Umkreis von Markus oder Martin. Die weibliche Endung zeigt Zugehörigkeit, ohne den eigenen Körper zu verbergen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Pospíšilová.]
~ surname = "Pospíšilová"
~ surname_written_form = "Pospíšilová"
~ surname_comment = "Die Ableitung gehört zu pospíšit, sich beeilen oder vorankommen. Ein Amt könnte daraus Ungeduld lesen, ein besserer Leser Tatkraft."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Hájeková.]
~ surname = "Hájeková"
~ surname_written_form = "Hájeková"
~ surname_comment = "Hájek bezeichnet einen kleinen Hain. Die Herkunft ist keine große Landschaft, sondern ein genauer Ort in ihr."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Králová.]
~ surname = "Králová"
~ surname_written_form = "Králová"
~ surname_comment = "Král bedeutet König, Králová ist die weibliche Form. Auf einfachem Papier steht damit ein Wort, das größer ist als der Platz, den man ihm gibt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Jelínková.]
~ surname = "Jelínková"
~ surname_written_form = "Jelínková"
~ surname_comment = "Die Form gehört zu jelen, dem Hirsch. Das Tier bleibt als Spur im Namen, auch wenn niemand ein Wappen daraus macht."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Benešová.]
~ surname = "Benešová"
~ surname_written_form = "Benešová"
~ surname_comment = "Beneš ist eine tschechische Form zu Benedikt, dem Gesegneten. Die weibliche Form trägt diesen Segen, ohne ihn auszustellen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Fialová.]
~ surname = "Fialová"
~ surname_written_form = "Fialová"
~ surname_comment = "Fialová bedeutet veilchenfarben oder Veilchen. Das ist eine Farbe, eine Pflanze und eine sehr kleine Art, im Formular nicht grau zu werden."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Sedláčková.]
~ surname = "Sedláčková"
~ surname_written_form = "Sedláčková"
~ surname_comment = "Sedláček ist die Verkleinerungsform zu sedlák, Bauer. Die weibliche Form macht bäuerliche Herkunft sichtbar, ohne sie zu beschönigen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Křížová.]
~ surname = "Křížová"
~ surname_written_form = "Křížová"
~ surname_comment = "Kříž bedeutet Kreuz. Das Zeichen kann Frömmigkeit, Ort oder Hauszeichen meinen und bleibt gerade deshalb brauchbar."
-> cg_after_surname_written ->
->->
@@ -0,0 +1,71 @@
// Generated surname choices for Arbeiterherkunft / galizisch-bukowinisch
=== cg_surnames_working_eastern ===
* [__Führe den Namen__: Woźniak.]
~ surname = "Woźniak"
~ surname_written_form = "Woźniak"
~ surname_comment = "Woźny bezeichnet einen Amtsdiener oder Boten, Woźniak die dazugehörige Herkunftsform. Arbeit und Verwaltung liegen darin näher beisammen, als ein Amt zugeben würde."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kozłowska.]
~ surname = "Kozłowska"
~ surname_written_form = "Kozłowska"
~ surname_comment = "Kozioł bedeutet Bock oder Ziegenbock, Kozłowska ist eine weibliche Herkunftsform. Die Tierwurzel bleibt sichtbar, ohne lächerlich zu werden."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Jankowska.]
~ surname = "Jankowska"
~ surname_written_form = "Jankowska"
~ surname_comment = "Die Form leitet sich von Jan ab und trägt eine weibliche Orts- oder Familienendung. Verwandtschaft wird hier grammatisch mitgeschrieben."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Mazur.]
~ surname = "Mazur"
~ surname_written_form = "Mazur"
~ surname_comment = "Mazur bezeichnet einen Menschen aus Masowien. Die Herkunft ist regional, knapp und schwer wegzuerklären."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Wojciechowska.]
~ surname = "Wojciechowska"
~ surname_written_form = "Wojciechowska"
~ surname_comment = "Wojciech verbindet slawische Bestandteile für Krieg oder Kämpfer und Freude oder Trost. Die weibliche Form macht daraus Familie, nicht bloß Person."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kwiatkowska.]
~ surname = "Kwiatkowska"
~ surname_written_form = "Kwiatkowska"
~ surname_comment = "Kwiat bedeutet Blume. Die Herkunftsform wirkt zart, aber sie ist genauso amtlich wie jeder härtere Name."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Krawczyk.]
~ surname = "Krawczyk"
~ surname_written_form = "Krawczyk"
~ surname_comment = "Krawiec bedeutet Schneider, Krawczyk ist die verkleinernde oder abgeleitete Form. Handwerk steht hier direkt unter der Feder."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Piotrowska.]
~ surname = "Piotrowska"
~ surname_written_form = "Piotrowska"
~ surname_comment = "Piotr ist Petrus, der Fels. Die weibliche Herkunftsform macht aus dem Heiligennamen eine Familienlinie."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Grabowska.]
~ surname = "Grabowska"
~ surname_written_form = "Grabowska"
~ surname_comment = "Grab bedeutet Hainbuche. Die Herkunftsform trägt einen Baum in das Formular, nicht als Schmuck, sondern als Spur eines Ortes."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Zając.]
~ surname = "Zając"
~ surname_written_form = "Zając"
~ surname_comment = "Zając bedeutet Hase. Ein Tiername kann Spott einladen, aber auch Beweglichkeit und Überleben in sich tragen."
-> cg_after_surname_written ->
->->
@@ -0,0 +1,71 @@
// Generated surname choices for Arbeiterherkunft / ungarisch
=== cg_surnames_working_hungarian ===
* [__Führe den Namen__: Takács.]
~ surname = "Takács"
~ surname_written_form = "Takács"
~ surname_comment = "Takács bedeutet Weber. Der Berufsname trägt Arbeit in das Feld, die man nicht wegadeln und nicht wegschreiben kann."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Balogh.]
~ surname = "Balogh"
~ surname_written_form = "Balogh"
~ surname_comment = "Balogh bedeutet linkshändig oder linksseitig. Was andere zur Abweichung erklären könnten, steht hier einfach als Herkunft da."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Papp.]
~ surname = "Papp"
~ surname_written_form = "Papp"
~ surname_comment = "Papp bedeutet Priester. Der Eintrag trägt kirchliche Nähe, auch wenn er keine Frömmigkeit beweist."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Lakatos.]
~ surname = "Lakatos"
~ surname_written_form = "Lakatos"
~ surname_comment = "Lakatos bedeutet Schlosser. Metall, Schlüssel und geschlossene Türen stehen im Hintergrund, ohne dass das Formular es merkt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Mészáros.]
~ surname = "Mészáros"
~ surname_written_form = "Mészáros"
~ surname_comment = "Mészáros bedeutet Fleischer oder Metzger. Der Berufsname ist körperlich, praktisch und schwer zu romantisieren."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Oláh.]
~ surname = "Oláh"
~ surname_written_form = "Oláh"
~ surname_comment = "Oláh bezeichnete im Ungarischen walachische oder rumänische Herkunft. Die Form trägt Grenze und Nachbarschaft in einer knappen Zeile."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Simon.]
~ surname = "Simon"
~ surname_written_form = "Simon"
~ surname_comment = "Simon geht auf den biblischen Vornamen zurück. Als Familienname ist er schlicht, aber nicht leer."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Rácz.]
~ surname = "Rácz"
~ surname_written_form = "Rácz"
~ surname_comment = "Rácz bezeichnete serbische oder südslawische Herkunft. Die Grenze schreibt sich hier direkt in den Namen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Fekete.]
~ surname = "Fekete"
~ surname_written_form = "Fekete"
~ surname_comment = "Fekete bedeutet schwarz. Die Farbbezeichnung kann vieles meinen und lässt dem Amt gerade deshalb zu wenig Gewissheit."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Fehér.]
~ surname = "Fehér"
~ surname_written_form = "Fehér"
~ surname_comment = "Fehér bedeutet weiß. Die Farbe steht hell im Formular, aber sie erklärt noch lange nicht die Person."
-> cg_after_surname_written ->
->->
@@ -0,0 +1,71 @@
// Generated surname choices for Arbeiterherkunft / südlich-adriatisch
=== cg_surnames_working_southern ===
* [__Führe den Namen__: Kranjc.]
~ surname = "Kranjc"
~ surname_written_form = "Kranjc"
~ surname_comment = "Kranjc bezeichnet einen Menschen aus der Krain. Die Herkunft ist regional, knapp und für Wien unbequem genau."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Zupan.]
~ surname = "Zupan"
~ surname_written_form = "Zupan"
~ surname_comment = "Zupan verweist auf den südslawischen Župan, einen Amts- oder Würdenträger. Auch einfache Herkunft kann alte Rangwörter mit sich tragen."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kos.]
~ surname = "Kos"
~ surname_written_form = "Kos"
~ surname_comment = "Kos bedeutet Amsel. Ein Vogelname ist leicht zu unterschätzen, bis man merkt, wie gut er sich merkt."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Horvat.]
~ surname = "Horvat"
~ surname_written_form = "Horvat"
~ surname_comment = "Horvat bezeichnet kroatische Herkunft. Eine ganze Grenzgeschichte steht in sechs Buchstaben."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kovačić.]
~ surname = "Kovačić"
~ surname_written_form = "Kovačić"
~ surname_comment = "Kovač bedeutet Schmied, Kovačić ist die verkleinernde oder abgeleitete Form. Werkzeug, Feuer und Handwerk bleiben im Namen erhalten."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Petrović.]
~ surname = "Petrović"
~ surname_written_form = "Petrović"
~ surname_comment = "Petrović bedeutet Sohn oder Nachkomme des Petar. Die Linie wird nicht durch Wappen, sondern durch eine Endung sichtbar."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Radić.]
~ surname = "Radić"
~ surname_written_form = "Radić"
~ surname_comment = "Radić gehört zum südslawischen Namenskreis um Arbeit, Freude oder Bereitwilligkeit. Die Kürze macht ihn nicht geringer."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Jurić.]
~ surname = "Jurić"
~ surname_written_form = "Jurić"
~ surname_comment = "Jurić leitet sich von Jure oder Georg ab. Ein Heiliger wird hier zur Familienform, nicht zur Zierde."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Bianchi.]
~ surname = "Bianchi"
~ surname_written_form = "Bianchi"
~ surname_comment = "Bianchi bedeutet die Weißen. Die Farbbezeichnung ist italienisch, alltäglich und trotzdem nicht neutral."
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Conti.]
~ surname = "Conti"
~ surname_written_form = "Conti"
~ surname_comment = "Conti bedeutet Grafen, kann aber auch als Familienname ohne Adelstitel auftreten. Gerade diese Zweideutigkeit ist für ein Formular unangenehm."
-> cg_after_surname_written ->
->->
File diff suppressed because it is too large Load Diff
+174
View File
@@ -0,0 +1,174 @@
// eibenreith_02_bahnhof.ink
// Kapitel: Der Bahnhof.
// Enthält Stations-Erkundung, Gepäckwahl und erstes Manierenpuzzle.
=== railway_station ===
Die Station ist klein genug, dass der Zug kurz verlegen wirkt, als er dort hält. #chapter[Der Bahnhof] #image[muerzzuschlag.png](portrait)
Ein Gepäckträger mit einer zu großen Kappe eilt über den Bahnsteig. Eine Frau mit Korb tritt vor dem Dampf zurück wie vor einem Tier. Irgendwo jenseits des Stationsgebäudes stampft ein Kutschpferd im gefrorenen Schlamm. Das Schild gibt dem Ort einen Namen, den du im Fahrplan gesehen hast und an den du dich nicht mit Zuneigung erinnern wirst.
-> station_platform_options
=== station_platform_options ===
{not tut_optional_intro:
#alert[Manche Wahlen sind Erkundungen. Sie öffnen Beobachtungen, Stimmungen oder Hinweise, ohne dich meist sofort auf einen unwiderruflichen Schritt festzulegen.]
~ tut_optional_intro = true
}
* [__Schaue__: Auf das Stationsschild.] #action:orientation #optional #key:l
Der Ortsname auf dem Schild ist mit schwarzer Farbe auf hellem Grund gemalt, zweckmäßig, kaiserlich, ohne jede Rücksicht auf den Eindruck, den er auf Ankommende macht. Die Buchstaben sehen aus, als hätten sie nie vorgehabt, in einem Salon ausgesprochen zu werden.
-> station_platform_options
* [__Höre__: Auf den Bahnsteig.] #action:orientation #optional
Unter dem Zischen der Lokomotive liegen kleinere Geräusche: ein Koffer, der auf Holz abgesetzt wird; das kurze Räuspern eines Beamten; Pferdehufe im gefrorenen Schlamm; eine Frau, die ein Gebet beginnt und beim zweiten Wort wieder verschluckt.
-> station_platform_options
* [__Untersuche__: Die Wartenden.] #action:orientation #optional
Niemand starrt offen. Das wäre grob. Stattdessen entstehen kleine Leerstellen in den Bewegungen der Leute: ein Blick, der zu spät weiterwandert; ein Schritt, der seine Richtung ändert; ein Gespräch, das plötzlich nur noch aus Endungen besteht.
-> station_platform_options
* [__Überblicke__: Dein Gepäck.] #action:object
-> station_baggage
=== station_baggage ===
Dein Gepäck wird in Etappen ausgeladen.
* [__Überblicke__: Eine disziplinierte amtliche Zusammenstellung.] #action:object
~ baggage_style = "official"
~ detective += 1
Zuerst kommt ein nüchterner Reisekoffer mit vom Gebrauch stumpfen Messingecken, dann eine Aktenmappe, dann eine Hutschachtel, dann der schmale schwarze Kasten, dessen Inhalt sowohl einen Priester als auch einen Taschenspieler in Verlegenheit bringen würde, falls einer von beiden ihn ohne Phantasie durchsuchte.
* [__Überblicke__: Das Gepäck einer eleganten Dame.] #action:object
~ baggage_style = "elegant"
~ class_confidence += 1
Zuerst kommt ein großer Koffer aus dunklem Leder, dann ein kleinerer für Wäsche, dann eine runde Hutschachtel, ein Reise-Necessaire und ein Ridikül, das du zu nahe bei der Hand behältst, als dass ein Gepäckträger seine Bedeutung missverstehen dürfte.
* [__Überblicke__: Das Gepäck einer Darstellerin.] #action:object
~ baggage_style = "performer"
~ medium_reputation += 1
Zuerst kommt ein respektabler Koffer, dann eine Hutschachtel, dann ein Reisekasten mit Handschuhen, Schleiern, Bändern, Visitenkarten und kleinen Gegenständen, mit denen man ein Zimmer überreden kann, an Kräfte zu glauben, die längst anwesend sind.
* [__Überblicke__: Eine praktische Auswahl, die zu viel Vorbereitung verrät.] #action:object
~ baggage_style = "practical"
~ detective += 1
Zuerst kommt ein abgenützter, an den Ecken verstärkter Koffer, dann eine Ledertasche mit Notizheften, Bleistiften, gefalteten Karten, Ersatzhandschuhen, einer Handlampe und genug kleinen Notwendigkeiten, um jeden zu beleidigen, der Frauen lieber dekorativ hat.
* [__Überblicke__: Ein übertriebener Haufen, der jede Tarnung erschwert.] #action:object
~ baggage_style = "excessive"
~ careless += 1
Zuerst kommt ein Koffer, dann ein zweiter, dann eine Hutschachtel, dann eine Reisedecke, dann ein Toilettenkasten, dann der schmale schwarze Kasten, dann ein kleineres Paket, von dem du vergessen hattest, dass es das Packen überlebt hat. Am Ende sieht selbst Viktor einen Augenblick lang zahlenmäßig unterlegen aus.
-
Viktor überwacht die Umladung mit knapper Höflichkeit. Er trägt nicht wie ein Diener. Er weist an wie ein Mann, der vorgibt, nicht zu befehlen.
Die kleine Szene vor dem Waggon ist harmlos genug, um gefährlich zu sein. Ein Gepäckträger wartet mit geneigtem Kopf. Der Kutscher steht einige Schritte entfernt. Viktor ist nah genug, um dir beim Aussteigen die Hand zu reichen, aber nicht so nah, dass er es ohne dein stilles Einverständnis täte. Drei Männer, drei Stände, drei verschiedene Arten von Nützlichkeit.
Was hier geschieht, wird niemand in einem Bericht erwähnen. Gerade deshalb wird es behalten.
{
- baggage_style == "practical":
Weil dein Gepäck nach Vorbereitung aussieht, wirkt die nüchterne Anweisung an einen Gepäckträger weniger wie Anmaßung und mehr wie Gewohnheit.
- baggage_style == "excessive":
Weil dein Gepäck zu zahlreich ist, wird schon vor dem ersten Wort sichtbar, dass jemand in deiner Nähe arbeiten muss.
- baggage_style == "performer":
Der schmale schwarze Kasten zieht Viktors Blick eine Spur länger auf sich als die übrigen Stücke.
- else:
Das Gepäck gibt den Männern genug zu tun, um ihnen ihre Rollen zu erklären.
}
{not tut_manners_intro:
#alert[In Gesellschaft entscheidet oft nicht nur, was du tust, sondern wann und vor wem. Höflichkeit, Rang und Timing können ebenso viel verraten wie ein Geständnis.]
~ tut_manners_intro = true
}
{not tut_gated_intro:
{
- birth_class == "noble":
#alert[Manche Möglichkeiten erkennst du nur, weil deine Herkunft, dein Glaube oder deine bisherigen Entscheidungen sie dir öffnen. Der hervorgehobene Hinweis nach dem Mittelpunkt zeigt, wodurch sie möglich wurde.]
~ tut_gated_intro = true
- birth_class == "working":
#alert[Manche Möglichkeiten erkennst du nur, weil deine Herkunft, dein Glaube oder deine bisherigen Entscheidungen sie dir öffnen. Der hervorgehobene Hinweis nach dem Mittelpunkt zeigt, wodurch sie möglich wurde.]
~ tut_gated_intro = true
}
}
* {birth_class == "noble"} [__Warte__ · **Adel**: Bis Viktor seine Hand anbietet.] #action:social #gated:noble #key:z
#manners:excellent
~ class_confidence += 2
~ court_loyalty += 1
Du wartest einen Atemzug, bis Viktor seine Hand anbietet, und nimmst sie dann, als wäre dies keine Hilfe, sondern die Ordnung der Welt.
Du gibst ihm nicht dein Gewicht. Nur deine Hand. Genau genug, dass er dienen darf, ohne Diener zu werden. Der Gepäckträger senkt den Blick ein wenig tiefer. Der Kutscher sieht, was er sehen muss: eine Dame, die ihren Rang nicht beweist, weil Beweise für Leute ohne Rang sind.
* [__Nicke__: Viktor zu und überlasse dem Gepäckträger das Gepäck.] #action:social
#manners:good
~ viktor_trust += 1
Du nimmst Viktors angebotene Hand knapp und sicher, dankst ihm mit einem Nicken und lässt den Gepäckträger das Gepäck nehmen.
Es ist gutes Benehmen ohne Prunk: nicht zu vertraut gegenüber Viktor, nicht zu freundlich gegenüber dem Gepäckträger, nicht so kalt, dass es nach Unsicherheit riecht. Mittelstand könnte dies lernen. Adel könnte es billigen. Dienstboten würden erkennen, dass du ihre Arbeit nicht mit Herablassung verwechselst.
* [__Bitte den Gepäckträger__: „Zuerst den kleineren Kasten, wenn ich bitten darf.“] #action:social
#route:detective
#manners:practical
~ detective += 1
Du steigst selbst aus, bevor Viktor sich entscheiden kann, und bittest den Gepäckträger sachlich, zuerst den kleineren Kasten zu nehmen.
Das ist nicht ganz falsch, aber auch nicht ganz richtig. Viktor bemerkt die kleine Missachtung der erwarteten Form. Der Gepäckträger gehorcht erleichtert, weil klare Anweisungen leichter zu tragen sind als feine Ungewissheit. Der Kutscher ordnet dich eher der Nützlichkeit als dem Rang zu.
* [__Warte__: Einen Augenblick zu lange, bevor du Viktors Hand nimmst.] #action:social
#route:lover
#manners:provocative
~ lover += 1
~ viktor_suspicion += 1
Du lässt Viktor zu lange mit ausgestreckter Hand warten und lächelst erst dann, als hättest du ihn absichtlich geprüft.
Es ist fast ein Fauxpas, gerettet durch Anmut und die Tatsache, dass Männer Demütigungen leichter verzeihen, wenn sie sich wie Aufmerksamkeit anfühlen. Viktor hilft dir hinunter. Seine Hand bleibt vollkommen korrekt. Sein Blick nicht ganz.
* [__Greife__: Selbst nach einem Koffer.] #action:object
#route:careless
#manners:awkward
~ careless += 1
Du entschuldigst dich beim Gepäckträger dafür, dass deine Sachen Mühe machen, und greifst selbst nach einem Koffer.
Der Gepäckträger erstarrt, als hättest du ihm eine philosophische Frage gestellt. Viktor tritt sofort dazwischen, höflich genug, um die Rettung wie Zufall aussehen zu lassen. Du hast gegen keine Moral verstoßen, nur gegen die unsichtbare Arbeitsteilung, auf der diese kleine Welt ruht.
* {birth_class == "working"} [__Nimm__ · **Unterschicht**: Dem Gepäckträger beinahe den Koffer ab.] #action:object #gated:working #key:t
#manners:fauxpas
~ class_confidence -= 1
~ careless += 1
Du springst hinunter, bevor jemand dir helfen kann, und nimmst dem Gepäckträger beinahe den Koffer aus der Hand.
Für eine Sekunde bist du schneller als deine Verkleidung. Der Gepäckträger hält fest, Viktor greift nach deinem Ellbogen, der Kutscher sieht weg, weil Wegsehen manchmal die höflichste Form von Zeugenschaft ist. Es ist kein Unglück. Nur ein Riss, klein genug, um ihn mit Haltung zu schließen.
-
Die Kutsche aus Hohenreith wartet jenseits des Stationshofes: dunkelgrüner Lack, schwarze Räder, das gräfliche Wappen dezent auf der Tür, zwei Pferde bereits unruhig im Geschirr. Der Kutscher nimmt den Hut ab, als er dich sieht. Nicht zu tief. Tief genug für Rang, nicht tief genug für Ehrfurcht. #sfx[horse-neigh.ogg]
„Gnädiges Fräulein? Herr Sekretär?“
{birth_class == "noble":
Man hat ihm genug gesagt, um dich einzuordnen. Das ist eine Höflichkeit. Es ist auch eine Warnung.
- else:
Er zögert bei dir um das kleinste Maß. Das Zögern ist keine Unhöflichkeit. Es ist Berechnung. Erste Klasse, Hofschreiben, kein Titel außer Fräulein, und ein Mann neben dir, der aussieht, als hätte er Menschen für weniger verhaften lassen als Starren.
}
Viktor antwortet, bevor du es kannst.
„Vom Jagdhaus Hohenreith?“
„Jawohl, Herr Sekretär. Der Weg ist befahrbar. Wenn der Nebel nicht dichter wird, sollten wir Eibenreith vor Einbruch der Dunkelheit erreichen.“
Das Wort tritt ohne Zeremonie in die Luft.
Eibenreith.
Nicht Hohenreith, der Name, der in sauberer Hand auf der Einladung steht. Eibenreith: das Dorf darunter. Ein kleinerer Name. Älter im Mund. Ein Name mit Wurzeln statt Briefpapier.
-> coach_journey
+209
View File
@@ -0,0 +1,209 @@
// eibenreith_03_graben.ink
// Kapitel: Der Graben.
// Enthält Kutschfahrt, optionale Grabenbeobachtungen und Statue/Viktor-Reaktion.
=== coach_journey ===
Die Kutsche lässt die Station hinter sich und damit das letzte leicht erkennbare Zeichen der Monarchie. #chapter[Der Graben] #music[Kaiserpunk Jodler.mp3](crossfade, loop, lead=4)
Zuerst folgt der Weg einem Tal, in dem Telegraphendraht ihm noch Gesellschaft leistet und der Fluss in einem hellen, steinigen Bett läuft. Sägewerke, umzäunte Wiesen und Bauernhäuser erscheinen und verschwinden hinter Fichtenbeständen. Die Berge steigen nicht auf einmal. Sie rücken zuständigkeitsweise vor. Ein bewaldeter Hang beansprucht den linken Himmel, dann schließt eine graue Wand aus Kalk den Norden, dann sammelt sich im Osten ein weiterer Rücken, bis selbst die Wolken in Dienst getreten scheinen.
Der Kutscher nennt Orte, wenn Viktor fragt, doch die Namen sind örtlich und praktisch, gedacht für Männer, die wissen, welche Brücke bei Hochwasser nachgibt und welcher Hof störrische Pferde hält. Irgendwo hinter den sichtbaren Rücken, sagt er, liegt der große weiße Rücken des Hochschwab. Nach Osten, jenseits von Wald und Pass, hält die Hohe Veitsch ihr eigenes Wetter. Er sagt das nicht wie ein Führer, sondern wie ein Mann, der Nachbarn erklärt, die vielleicht guter Laune sind und vielleicht nicht.
Das Haupttal verengt sich.
Der Weg biegt davon in einen Seitengraben, und die Veränderung ist augenblicklich. Der Klang ändert sich. Die Räder klingen nicht mehr gegen offene Entfernung, sondern mahlen zwischen Böschungen, Wurzeln und nassem Stein. Die Luft riecht nach Lauberde, Harz und kaltem Wasser. Eiben erscheinen zwischen den Fichten in dunkler, unwahrscheinlicher Geduld, ihre Nadeln zu schwarz für den Nachmittag.
„Eibenreither Graben“, sagt der Kutscher und bekreuzigt sich so rasch, dass die Geste auch einem Schlagloch gegolten haben könnte.
Viktor bemerkt es. Natürlich bemerkt er es.
„Schlechter Weg?“, fragt er.
„Alter Weg“, sagt der Kutscher.
Eine Weile spricht niemand.
-> coach_road_options
=== coach_road_options ===
* [__Berühre__: Das kalte Kutschenfenster.] #action:object #optional
Das Glas ist kälter, als es im Inneren der Kutsche sein dürfte. Feuchtigkeit sammelt sich an deinem Handschuh und verschwindet sofort wieder, als hätte sie es sich anders überlegt. Draußen streifen Zweige so nah vorbei, dass sie die Scheibe beinahe mit Nägeln prüfen.
-> coach_road_options
* [__Höre__: Auf die Räder im Graben.] #action:orientation #optional
Das Geräusch der Räder hat sich verändert. Auf der offenen Straße war es ein Rhythmus; hier ist es ein Mahlen, ein Zählen, ein wiederholtes Bestehen gegen Stein und Wurzel. Der Weg klingt nicht befahren. Er klingt benutzt.
-> coach_road_options
* [__Untersuche__: Viktors Reaktion.] #action:orientation #optional
Viktor betrachtet nicht die Landschaft. Er betrachtet ihre Möglichkeiten: Engstellen, Böschungen, tote Winkel, die Entfernung bis zum Kutscher, die Frage, wie rasch man aus einer Kutsche steigt, wenn die Straße selbst dagegen ist.
-> coach_road_options
* [__Warte__: In der schaukelnden Kutsche.] #action:social #key:z
-> coach_after_road_options
=== coach_after_road_options ===
Du beobachtest die Bäume.
Es gibt Wälder, die zu Geschichten einladen, weil sie hübsch sind, und Wälder, die Geschichten zurückweisen, weil das, was dort geschah, keine Zeugen brauchte. Dieser gehört zur zweiten Art. Seine Stämme stehen eng, nicht wild, sondern mit der Haltung einer Menge, die Platz macht für etwas, das vor langer Zeit durch sie getragen wurde. Der Schnee in den Mulden ist nicht rein. Er hat Nadeln gesammelt, Rinde und einen gelblichen Fleck dort, wo Wasser von unten aufgestiegen ist.
An einem Hang oberhalb des Weges, halb vom Unterholz verschluckt, erblickst du Stein.
Ein Wegheiligtum vielleicht. Ein Grenzzeichen. Eine Figur. Die Kutsche rollt schon vorbei, bevor deine Augen sich auf ihre Form einigen können. Für einen Augenblick bleibt der Eindruck eines Frauenkopfes zurück, geneigt nicht im Gebet, sondern im Lauschen. #image[statue.png](square)
{
- supernatural_senses == "genuine":
Dein Nacken zieht sich zusammen.
Nicht Furcht. Wiedererkennen wäre schlimmer.
- supernatural_senses == "ambiguous":
Dein Nacken zieht sich zusammen.
Nicht Furcht. Wiedererkennen wäre schlimmer.
- supernatural_senses == "repressed":
Dein Nacken zieht sich zusammen.
Nicht Furcht. Wiedererkennen wäre schlimmer.
- else:
Du sagst dir, dass alter Stein, durch bewegte Zweige gesehen, zu allem wird, wozu der Geist feig genug ist.
}
Viktor wendet sich leicht demselben Hang zu.
„Haben Sie etwas gesehen?“
* [__Antworte__: „Vielleicht eine Frau im Wald. Oder ein Stein, der eine sein wollte.“] #action:conversation
#route:eccentric
#hint:statue
~ eccentric += 1
~ viktor_suspicion += 1
„Vielleicht eine Frau im Wald. Oder ein Stein, der eine sein wollte.“
Er betrachtet die vorbeiziehenden Bäume.
„Ein Wegheiligtum?“
** [__Antworte__: „Wenn es ein Heiligtum ist, so ist es seit langem nicht mehr geliebt worden.“] #action:conversation
„Wenn es ein Heiligtum ist, so ist es seit langem nicht mehr geliebt worden.“
„Sie sprechen, als bemerkten Steine Vernachlässigung.“
Soldaten bemerken Vernachlässigung ebenfalls. Sein Schweigen gesteht genug zu.
Er antwortet nicht.
** [__Antworte__: „Nein. Heiligtümer wenden sich den Gläubigen zu. Dieses Ding lauschte seitwärts.“] #action:conversation
~ supernatural_exposure += 1
„Nein. Heiligtümer wenden sich den Gläubigen zu. Dieses Ding lauschte seitwärts.“
Viktors Hand ruht am Halteriemen der Kutsche, still und bereit.
--
* [__Antworte__: „Ein Grenz- oder Wegzeichen. Ich wüsste gern, wohin dieser Pfad führt.“] #action:conversation
#route:detective
#hint:statue
~ detective += 1
~ viktor_trust += 1
„Ein Grenz- oder Wegzeichen. Ich wüsste gern, wohin dieser Pfad führt.“
„Sie haben einen Pfad gesehen?“
** [__Antworte__: „Nicht deutlich. Genug, um später danach zu fragen.“] #action:conversation
„Nicht deutlich. Genug, um später danach zu fragen.“
Viktor blickt durch das kleine rückwärtige Fenster. Die Biegung hat den Hang bereits ausgelöscht.
„Fragen Sie vorsichtig. Orte, die man nicht erwähnt, sind oft aufschlussreicher als jene, die man empfiehlt.“
** [__Antworte__: „Nur die Andeutung eines Pfades. Wenn er existiert, erhält jemand seine Abwesenheit aufrecht.“] #action:conversation
#route:detective
~ detective += 1
„Nur die Andeutung eines Pfades. Wenn er existiert, erhält jemand seine Abwesenheit aufrecht.“
„Sie lassen Abwesenheiten kostspielig klingen.“
Das sind sie meistens; Abwesenheit ist teuer, wenn jemand sie pflegt.
--
* [__Antworte__: „Nur Bäume. Die Art, bei der man für Herren mit Revolvern dankbar wird.“] #action:conversation
#route:careless
~ careless += 1
~ viktor_relation = "dependence"
„Nur Bäume. Die Art, bei der man für Herren mit Revolvern dankbar wird.“
Sein Ausdruck verdunkelt sich um einen amtlichen Grad.
„Ein Revolver ist ein schlechtes Werkzeug gegen Bäume.“
** [__Antworte__: „Dann werde ich mich darauf verlassen, dass Ihre Unterhaltung sie einschüchtert.“] #action:conversation
„Dann werde ich mich darauf verlassen, dass Ihre Unterhaltung sie einschüchtert.“
Der Kutscher tut, als höre er nichts. Seine Schultern jedoch hören alles.
** [__Antworte__: „Wie bedauerlich. Sie wirkten so berufsmäßig beruhigend.“] #action:conversation
#route:lover
~ lover += 1
„Wie bedauerlich. Sie wirkten so berufsmäßig beruhigend.“
„Ich bevorzuge Feinde, die sich zu erkennen geben.“
--
* [__Frage Viktor__: „Würden Sie mir glauben, wenn ich sagte, ich hätte etwas gesehen?“] #action:conversation
#route:lover
~ lover += 1
~ viktor_suspicion += 1
„Würden Sie mir glauben, wenn ich sagte, ich hätte etwas gesehen?“
„Das hinge davon ab, welchen Vorteil Sie sich von der Antwort versprechen.“
** [__Antworte__: „Herr Nowak. Sie verletzen mich.“] #action:conversation
„Herr Nowak. Sie verletzen mich.“
„Noch nicht.“
Es ist das Erste, was er an diesem Tag gesagt hat, das beinahe wie ein Flirt klingt, wenn auch vielleicht nur deshalb, weil Gefahr ein Talent dafür hat, wärmere Kleider zu borgen.
** [__Weise Viktor an__: „Beobachten Sie den Hang, nicht meine Absichten. Eines von beidem könnte nützlich sein.“] #action:social
~ viktor_trust += 1
„Dann beobachten Sie den Hang, nicht meine Absichten. Eines von beidem könnte nützlich sein.“
Er gehorcht, ohne zuzugeben, dass er es getan hat.
--
* [__Antworte__: „Nein.“] #action:conversation
#route:sapphic
~ sapphic += 1
„Nein.“
Die Verneinung kommt zu rasch, und ihr hört es beide.
Du denkst nicht mehr an den Stein. Du denkst an die junge Frau, die irgendwo vor euch wartet: die Tochter des Grafen, der Grund, der sorgsam nicht im Memorandum steht, die Fremde, deren Haushalt dich unter einem Titel herbeigerufen hat, der zugleich lächerlich und nützlich ist.
** [__Antworte__: „Es war nur Schatten.“] #action:conversation
„Es war nur Schatten.“
Wenn dieser Ort Frauen in Stein hält, denkst du, was tut er dann mit ihnen in den Häusern?
** [__Antworte__: „Oder, falls ich etwas sah, ziehe ich es vor, es mir nicht erklären zu lassen, bevor ich verstehe, warum es von Bedeutung ist.“] #action:conversation
#route:detective
~ detective += 1
„Oder, falls ich etwas sah, ziehe ich es vor, es mir nicht erklären zu lassen, bevor ich verstehe, warum es von Bedeutung ist.“
Wenn dieser Ort Frauen in Stein hält, denkst du, was tut er dann mit ihnen in den Häusern?
--
-
Der Graben öffnet sich widerwillig.
-> village_arrival_options
+162
View File
@@ -0,0 +1,162 @@
// eibenreith_04_dorf.ink
// Kapitel: Eibenreith.
// Enthält Dorfankunft, optionale Dorfbeobachtungen, Ausstiegs-Manierenpuzzle und Schluss des Intros.
=== village_arrival_options ===
Zuerst kommt der Geruch von Rauch. Dann ein Dach, niedrig und dunkel vom Wetter. Dann ein zweites. Dann ein Kirchturm, nicht hoch, nicht anmutig, sondern breitschultrig und blass vor dem Hang dahinter. Seine Mauern wirken älter als das Dorf um sie her und weniger sicher ihres Sieges. Die Fenster sind klein. Die Kirchhofmauer hält die Straße auf Abstand, als bräuchten die Toten Schutz vor den Lebenden oder die Lebenden vor etwas anderem. #chapter[Eibenreith] #sfx[church-bells.ogg](max=8, fade) #image[eibenreith.png](landscape)
Eibenreith erscheint nicht, wie ein Dorf auf einem Bild erscheint, auf einmal und zur Bewunderung geordnet, sondern in Bruchstücken.
Eine Frau mit einem dunklen Kopftuch hält mit einem Eimer in der Hand inne. Ein Bub hört auf, Gänse zu treiben, und lässt sie um seine Stiefel klagen. Zwei Männer vor einem Schuppen beenden im selben Augenblick ihr Gespräch, ohne einander anzusehen. Vorhänge rühren sich an Fenstern, hinter denen niemand zugibt zu stehen. Ein Schmiedeschild bewegt sich leicht in Luft, die du nicht fühlen kannst. Wasser läuft irgendwo unter Brettern, unter Stein, unter der Straße selbst, schnell, kalt und verborgen.
Die Häuser sind nicht arm, nicht eigentlich. Viele sind fest, weißgekalkt, geschindelt, erhalten mit der störrischen Anständigkeit von Menschen, die reparieren, was sie nicht ersetzen können. Und doch stört etwas in ihrer Anordnung das Auge. Sie wenden sich der Kirche zu, aber nicht ganz. Sie halten die Straße, aber lehnen sich von ihr weg. Sie lassen zwischen Hof, Zaun und Holzstoß schmale Durchgänge, in denen sich Schatten zu früh sammelt.
Die Kutsche wird langsamer.
Niemand läuft herbei, um sie zu begrüßen.
Niemand muss das. Die Nachricht ist bereits ins Dorf eingetreten, auf Wegen schneller als Bahn, Telegraph oder kaiserliches Siegel.
Du sitzt sehr gerade, während Eibenreith dich zum ersten Mal betrachtet.
- (dorfbeobachtung)
* [__Schaue__: In die Gesichter am Straßenrand.] #action:orientation #optional #key:l
Die Gesichter verschwinden nicht, wenn du hinsiehst. Sie verändern nur ihre Begründung: Eine Frau prüft plötzlich ihren Eimer. Ein Bub entdeckt die Gänse neu. Ein Mann tut, als habe er schon immer zum Kirchtor gesehen. Das Dorf besitzt keine Bühne, aber jeder hier kennt seinen Auftritt.
-> dorfbeobachtung
* [__Höre__: Auf das Wasser unter der Straße.] #action:orientation #optional
Unter den Rädern, unter Brettern und Steinen, unter der höflichen Behauptung einer Dorfstraße läuft Wasser. Es klingt nicht tief, aber schnell. Als hätte der Ort einen zweiten Atem, einen kalten, verborgenen, der nicht durch menschliche Münder geht.
-> dorfbeobachtung
* [__Untersuche__: Die Kirche.] #action:orientation #optional
Der Turm ist nicht schlank genug, um in den Himmel zu zeigen. Er steht da wie eine Faust. Die kleinen Fenster geben wenig preis, und die Mauer des Kirchhofs wirkt weniger wie Einfriedung als wie eine alte Gewohnheit, sich gegen etwas zu stemmen.
{
- religion_stance == "devout_catholic":
Gerade das stört dich: nicht der Mangel an Schönheit, sondern der Mangel an Frieden.
- religion_stance == "josephinian_sceptic":
Du siehst weniger Andacht als Institution: Stein, Besitz, Grenze, Verwaltung der Furcht.
- else:
Die Kirche sieht nicht aus, als habe sie den älteren Dingen im Tal widersprochen. Eher, als habe sie gelernt, über ihnen zu stehen.
}
-> dorfbeobachtung
* [__Warte__: Bis die Kutsche hält.] #action:social #key:z
-> village_exit_puzzle
=== village_exit_puzzle ===
Der Kutscher hält vor dem Wirtshaus oder vielleicht nur vor dem Gebäude, das in einem besseren Dorf eines gewesen wäre. Ein Knecht aus dem Dorf tritt aus dem Schatten des Tors. Viktor öffnet die Kutschentür von innen nicht sofort; der Kutscher steigt ab, um den Schlag zu öffnen. Der Knecht sieht auf dein Gepäck, dann auf deine Handschuhe, dann auf Viktor.
Wieder stellt die Welt eine Frage, ohne sie auszusprechen: Wer darf dir helfen, wer muss dir helfen, und wem erlaubst du, dabei wichtig zu wirken?
* {birth_class == "noble"} [__Warte__ · **Adel**: Bis der Kutscher den Schlag öffnet und Viktor zuerst aussteigt.] #action:social #gated:noble #key:z
#manners:excellent
~ class_confidence += 2
Du wartest, bis der Kutscher den Schlag öffnet und Viktor zuerst aussteigt; erst dann reichst du Viktor die behandschuhte Hand.
Es geschieht langsam genug, dass alle Beteiligten ihre Rolle finden. Der Kutscher ist Dienst, Viktor ist Begleitung, der Knecht ist noch nicht wichtig genug, um dich zu berühren. Dein Fuß erreicht den Boden, als hätte die Straße sich dafür bereitgehalten.
* [__Nicke__: Dem Kutscher knapp zu, nachdem Viktor dir geholfen hat.] #action:social
#manners:good
~ viktor_trust += 1
Du lässt Viktor aussteigen, nimmst seine Hand beim Abtreten und dankst dem Kutscher erst danach mit einem knappen Blick.
Der Ablauf ist korrekt genug, um keine Geschichte zu erzeugen. In einem Dorf, das von Geschichten lebt, ist das ein kleiner Sieg.
* [__Weise den Knecht an__: „Zuerst den kleineren Kasten.“] #action:social
#route:detective
#manners:practical
~ detective += 1
Du gibst dem Knecht eine klare Anweisung, welches Gepäck zuerst abgeladen werden soll, bevor er danach fragen kann.
Er gehorcht sofort. Viktor registriert die Zweckmäßigkeit. Der Kutscher registriert die Ungewöhnlichkeit. Eine Dame, die Gepäckreihenfolgen kennt, ist entweder sehr erfahren, sehr nervös oder beides.
* [__Lächle__: Dem Kutscher zu freundlich zu.] #action:social
#route:lover
#manners:too_warm
~ lover += 1
Du bietest dem Kutscher ein sichtbares Lächeln und ein zu freundliches „Danke“ an.
Der Mann senkt den Blick, verwirrt und geschmeichelt. Viktor wird stiller. Freundlichkeit über Standesgrenzen hinweg kann Güte sein, Taktik oder Unachtsamkeit. Auf dem Dorf wird niemand lange brauchen, eine vierte Möglichkeit zu erfinden.
* [__Steige aus__: Zu früh, ehe alle Rollen verteilt sind.] #action:movement
#route:careless
#manners:awkward
~ careless += 1
~ viktor_relation = "dependence"
Du steigst zu früh aus, trittst beinahe in den Straßenschlamm und fängst dich an Viktors Arm.
Er hält dich ohne sichtbare Anstrengung fest. Für einen Augenblick sieht das Dorf genau das, was es am liebsten sieht: eine Dame, gerettet durch einen Mann. Es ist lächerlich nützlich und nützlich lächerlich.
* {birth_class == "working"} [__Steige aus__ · **Unterschicht**: Allein, bevor jemand dir helfen kann.] #action:movement #gated:working
#manners:fauxpas
~ class_confidence -= 1
Du steigst allein aus, nimmst deinen Rock hoch genug, um den Schlamm zu sehen, und sagst dem Knecht, er solle mit dem schweren Koffer vorsichtig sein.
Es ist praktisch, schnell und völlig falsch. Nicht, weil du unrecht hast, sondern weil du recht hast wie jemand, der selbst schon getragen hat. Der Knecht erkennt es. Viktor auch.
-
Neben dir senkt Viktor die Stimme.
„Vergessen Sie nicht: In Hohenreith wird jede Höflichkeit etwas bedeuten. Hier wird es jedes Schweigen tun.“
* [__Antworte__: „Dann werden wir bereits empfangen.“] #action:conversation
#route:detective
~ detective += 1
„Dann werden wir bereits empfangen.“
„Ja“, sagt er. „Und geprüft.“
* [__Antworte__: „Sie lassen es klingen, als stünde das Dorf über dem Grafen.“] #action:conversation
#route:eccentric
~ eccentric += 1
„Sie lassen es klingen, als stünde das Dorf über dem Grafen.“
„Nein“, sagt Viktor. „Nur, als hätte es vielleicht mehr als einen überlebt.“
* [__Antworte__: „Wie glücklich, dass ich mehrere Arten des Schweigens eingepackt habe.“] #action:conversation
#route:lover
~ lover += 1
„Wie glücklich, dass ich mehrere Arten des Schweigens eingepackt habe.“
Sein Mund bewegt sich beinahe. „Verwenden Sie zuerst das schlichteste.“
* [__Antworte__: „Ich mag es nicht, von Leuten beobachtet zu werden, die sich nicht vorstellen.“] #action:conversation
#route:careless
~ careless += 1
„Ich mag es nicht, von Leuten beobachtet zu werden, die sich nicht vorstellen.“
„Das“, sagt er, „wird sich heute kaum bessern.“
* [__Antworte__: „Wenn Amalia ihr ganzes Leben unter diesem Blick gelebt hat, beginne ich zu verstehen, weshalb man nach Geistern sandte.“] #action:conversation
#route:sapphic
~ sapphic += 1
„Wenn Amalia ihr ganzes Leben unter diesem Blick gelebt hat, beginne ich zu verstehen, weshalb man nach Geistern sandte.“
Viktor sieht dich an, doch welche Antwort er auch erwägt, er behält sie hinter den Zähnen.
-
Die Pferde ziehen die Kutsche an der Kirchhofmauer vorbei. Darüber, auf dem alten Putz neben dem Tor, blickt eine verblasste gemalte Frau unter einem abblätternden blauen Mantel herab. Ihre Hände sind zum Gebet gefaltet. Ihre Augen, vom Wetter beschädigt, zeigen nicht mehr in dieselbe Richtung.
{
- religion_stance == "devout_catholic":
Für einen Atemzug stört dich nicht, dass das Bild alt ist. Es stört dich, dass es nicht mehr ganz heilig wirkt.
- religion_stance == "josephinian_sceptic":
Für einen Atemzug wirkt das Bild weniger wie Andacht als wie Verwaltung: ein aufgemaltes Siegel über etwas, das man nicht fortschaffen konnte.
- religion_stance == "wounded_catholic":
Für einen Atemzug trifft dich das gemalte Gesicht an einer Stelle, die du lieber Schuld als Erinnerung nennen würdest.
- else:
Für einen Atemzug, als die Räder über ein verborgenes Wasserrinnsal fahren, wirkt das gemalte Gesicht weniger wie die Heilige Mutter als wie eine Maske, die etwas aufgesetzt wurde, das länger gewartet hatte.
}
Dann fährt die Kutsche in das eigentliche Dorf hinein, und die Straße biegt zu der unsichtbaren Höhe, auf der Jagdhaus Hohenreith über Eibenreith unter seinem neueren Namen steht.
#score[Du hast Eibenreith erreicht.]
-> END
@@ -0,0 +1,430 @@
# Eibenreith Character Generator v4 Integration Notes
## Purpose
This archive merges the previous `eibenreith_name_generator_research_and_ink_v3.zip` and `eibenreith_form_notes_v1.zip`, adds the missing surname-comment data, and rewrites the Ink structure according to the latest design decisions.
The scene is no longer a simple name generator. It is a first-class train-compartment scene in which Rittmeister Viktor Alois Nowak, disguised as Valerie's secretary, gives her a blank `Personal- und Evidenzbogen` and asks her to fill it out for the files. The player sees the internal monologue of the protagonist while she writes the form, not a literal UI copy of the paper form.
## Hard decisions now fixed
1. The player character is always classified as female in the form.
2. The form is blank. Nothing is prefilled or specially printed with Valerie's personal values.
3. `Geschlecht` is handled as a checkbox line: `□ männlich □ weiblich`. Valerie actively checks `weiblich`.
4. The gender comment must not become a modern gender essay. It says that her body has fixed her legal and social possibilities from birth, while leaving modern questions such as dysphoria, intersex or non-binary identity outside the form's concern.
5. The scene takes place in late October 1898, using 25 October 1898 as the reference date for ages.
6. The game is set after Kaiserin Elisabeth's assassination on 10 September 1898 and after the Vienna Jubilee Exhibition closed on 18 October 1898, but before Franz Joseph's formal 50th jubilee day on 2 December 1898.
7. December is avoided because it feels too Christmas-like.
8. The chosen dates make Valerie 20 or 21, never legally volljährig. Full majority under ABGB is 24.
9. `Familienstand` is always `ledig`.
10. `Religionsbekenntniß` is always `römisch-katholisch`.
11. The offered birthplaces are all plausible for a Catholic protagonist, as long as she is understood to come from a Catholic milieu in that city.
12. Field labels and values written into the form use old official spelling where appropriate: `Kenntniß`, `Religionsbekenntniß`, `Classen`, `Clavierspiel`.
13. The narration and choice text remain modern German except where directly quoting a form field or form value.
14. The `Rufname`/nickname is not a form field. It is an inner-monologue choice attached to the given-name package.
15. Given names remain curated packages, not single-name choices.
16. Nicknames remain nested `* *` subchoices directly under the chosen given-name package.
17. All conditionals must use the newer switch-like Ink form:
```ink
{
- class == noble:
...
- class == middle:
...
- class == working:
...
}
```
18. `class` and `name_region` use Ink list items, not strings.
19. Do not store or compose a single `full_name` string. Output the name from separate variables such as `given_names` and `surname_written_form`.
20. Use helper tunnels only where they avoid repeated text in generated choice Weaves. Do not use helpers for one-off static form sections.
## Final field order
The order has been adjusted for technical and narrative clarity. `Umgangssprache` and `Fremdsprachenkenntniß` both depend on birth place and class, so `Genossene Bildung` must be known before those values can be finalized.
1. `Geschlecht`
2. `Tag und Jahr der Geburt`
3. `Geburtsort`
4. `Genossene Bildung`
5. `Umgangssprache`
6. `Kenntniß der deutschen Sprache`
7. `Religionsbekenntniß`
8. `Familienstand`
9. `Fremdsprachenkenntniß`
10. `Stand und Beschäftigung`
11. `Titel und Standesbezeichnung`
12. `Vor- und Zuname`
## Education choices
Use exactly these three choices unless intentionally revising the social-class model.
### Adel
Form value:
`häuslicher Unterricht, katholisches Mädchenpensionat, Privatstunden in französischer Sprache, Clavierspiel und Zeichnen`
Sets:
```ink
~ class = noble
```
### Bürgertum
Form value:
`fünf Classen Volksschule, drei Classen Mädchen-Bürgerschule, Fortbildung in Stenographie und Kanzleiarbeit`
Sets:
```ink
~ class = middle
```
### Arbeiterherkunft
Form value:
`fünf Classen Volksschule, anschließend Dienstbotenstelle in adeligem Haushalt`
Sets:
```ink
~ class = working
```
A Dienstbotenstelle in an aristocratic household is historically plausible and narratively useful. It explains how a working-class Valerie learned to read upper-class conduct, speech, clothes, rooms, secrets and hierarchies.
## Derived values after education
After `Genossene Bildung`, call or execute a derived-field block. It must use switch-style conditions.
```ink
{
- class == noble:
~ everyday_language = everyday_language_noble
~ foreign_languages = foreign_languages_noble
~ occupation = "Freiin, in besonderer Verwendung"
~ title_display = "Freiin"
~ title_part = "Freiin von"
- class == middle:
~ everyday_language = everyday_language_middle
~ foreign_languages = foreign_languages_middle
~ occupation = "Privatbeamtin in besonderer Verwendung"
~ title_display = "—"
~ title_part = ""
- class == working:
~ everyday_language = everyday_language_working
~ foreign_languages = foreign_languages_working
~ occupation = "ehemaliges Dienstmädchen, in besonderer Verwendung"
~ title_display = "—"
~ title_part = ""
}
```
## Birthplace data
Each birthplace choice sets:
- `birthplace`
- `name_region`
- `everyday_language_noble`
- `everyday_language_middle`
- `everyday_language_working`
- `foreign_languages_noble`
- `foreign_languages_middle`
- `foreign_languages_working`
- `birthplace_note`
- `birthplace_reflection`
The birthplace comment should be written directly in the birthplace choice. No helper is needed unless the birthplace list is later generated repeatedly in multiple places.
`birthplace_note` is the time-period prejudice / official-cultural expectation.
`birthplace_reflection` is the protagonist's thought about that expectation.
## Name data
Each given-name package sets:
- `given_names`
- `given_names_key`
- `given_names_meaning_fragment`
- `given_names_combination_note`
Then it calls:
```ink
-> cg_after_given_names_written ->
```
The nested nickname choices set:
- `common_name`
Then the nested branch calls:
```ink
-> cg_after_common_name_chosen ->
```
After that it routes to surnames:
```ink
-> cg_route_surnames ->
```
## Surname data
Each surname choice sets:
- `surname`
- `surname_written_form`
- `surname_comment`
Then it prints:
```ink
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
```
For noble choices, `surname_written_form` includes `Freiin von ...`.
For middle/working choices, it is just the family name.
## Helper tunnels
Helper tunnels belong in `ink/character_generator_name_helpers.ink`.
They should only be used inside generated given-name and surname Weaves.
Current helpers:
```ink
=== cg_after_given_names_written ===
Du schreibst die Vornamen aus: {given_names}.
{given_names_meaning_fragment}. {given_names_combination_note}
Die Namen liegen vollständig auf dem Papier. Aber kein Mensch hört innerlich auf alle Namen zugleich.
->->
=== cg_after_common_name_chosen ===
{common_name} ist der Name, bei dem du zuerst antwortest.
Nicht das ganze Papier. Nicht die ganze Familie. Nur der Teil, der gemeint ist, wenn jemand dich ruft und du dich umdrehst, bevor du entschieden hast, ob du gehorchen willst.
->->
=== cg_after_surname_written ===
{surname_comment}
->->
```
## Include strategy
Add the generated include file near the top of the character-generator module, after any global LIST/VAR declarations if your project requires that ordering. If using the provided `character_generator_reworked.ink` as a complete reference, the list declarations and variables are already included.
Generated include/route file:
`ink/character_generator_generated_includes_and_routers.ink`
This includes:
- all given-name files
- all surname files
- name helper tunnels
- `cg_route_given_names`
- `cg_route_surnames`
## Critical Ink structure requirement
The given-name selections must remain nested Weaves. Do not flatten them into separate named knots unless the nested Weave is preserved logically and visually.
Correct shape:
```ink
* [__Heiße__: Valerie Eleonore Josepha.]
~ given_names = "Valerie Eleonore Josepha"
-> cg_after_given_names_written ->
* * [__Höre auf__: Valerie.]
~ common_name = "Valerie"
* * [__Höre auf__: Vally.]
~ common_name = "Vally"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
```
If this fails to compile, the likely issue is exact tunnel placement or gather depth, not the intended architecture.
## Remaining technical checks
1. Confirm whether the project already declares list items `noble`, `middle`, `working`, `austrian`, `bohemian`, `hungarian`, `eastern`, `southern`. If not, use the declarations in `character_generator_reworked.ink`.
2. Confirm that the variable name `class` is acceptable in the project's Ink runtime. Existing code already uses it.
3. Compile with current Inky / Ink 1.2 after including the generated files.
4. If tunnel calls immediately before `* *` nested options cause a compile issue, adjust the placement without flattening the nested nickname Weave.
5. Existing `mark(class_def)` and tutorial alert calls from the old file are not included in the reworked reference. Add them back if still required by the broader engine.
## Completed example output
Das Abteil erster Classe ist mit grünem Tuch ausgeschlagen. Die Fenster zittern in ihren Rahmen. Draußen läuft das Land rückwärts, flach und braun, von Telegraphendrähten in Zeilen geschnitten.
Rittmeister Viktor Alois Nowak sitzt dir gegenüber, getarnt als dein Sekretär. Der dunkle Anzug ist gut gewählt. Nur seine Schultern verraten, daß er nicht zum Diktat geboren wurde.
„Für die Akten“, sagt er.
Er legt dir ein gefaltetes Formular auf den kleinen Tisch zwischen euch. Das Papier ist nicht billig. Der obere Rand trägt keinen gedruckten Adler, nur eine trockene Registraturnummer und den Vermerk: Personal- und Evidenzbogen.
„Es ist nicht mehr als Förmlichkeit“, sagt Nowak.
Das ist eine Lüge. Nicht sehr groß, nicht sehr gut verborgen. Er sagt sie trotzdem höflich genug, daß du sie entgegennehmen kannst.
Du nimmst den Federhalter. Die Tinte hat sich im Glas auf der Seite gesammelt, weil der Wagen in eine lange Kurve geht.
Geschlecht
□ männlich □ weiblich
Du setzt das Kreuz bei weiblich.
Dein Körper hat deine Möglichkeiten von Geburt an festgelegt, lange bevor du alt genug warst, ein Wort dafür zu besitzen. Das Formular fragt nicht nach mehr. Es will nur wissen, in welche Hälfte des Gesetzes es dich legen darf.
Tag und Jahr der Geburt
[Notiere: 8. November 1877.]
Du trägst ein: 8. November 1877.
20 Jahre. Alt genug, um allein mit einem Offizier erster Classe durchs Land geschickt zu werden, und doch nicht alt genug, um vor dem Gesetz ganz dir selbst zu gehören.
Der Skorpion liegt tief im Herbst. Man sagt ihm Stachel, Verschwiegenheit und Gedächtnis nach. Sehr hübsch. Sehr brauchbar. Nicht zwingend wahr.
Geburtsort
[Geboren in: Wien.]
Du schreibst: Wien.
Residenzluft, Amtsgänge, Theater, Musik und die unverschämte Gewohnheit, die eigene Stadt für den Mittelpunkt jeder vernünftigen Welt zu halten.
Bei Wien denkt niemand an Herkunft, sondern an Maßstab. Du kommst nicht aus einer Stadt, sondern aus der Stelle, an der andere Städte sich zu entschuldigen haben.
Genossene Bildung
[Notiere: häuslicher Unterricht, katholisches Mädchenpensionat, Privatstunden in französischer Sprache, Clavierspiel und Zeichnen.]
Du schreibst: häuslicher Unterricht, katholisches Mädchenpensionat, Privatstunden in französischer Sprache, Clavierspiel und Zeichnen.
So sieht eine Erziehung aus, wenn man sie auf eine Zeile zwingt. Kein Wort von kalten Schlafsälen. Kein Wort von geraden Rücken, gesenkten Stimmen und den langen Nachmittagen, an denen man lernt, daß ein Fehler in der Haltung schwerer wiegen kann als ein Fehler im Denken.
Umgangssprache
Du trägst ein: deutsch.
Es ist nicht nur eine Sprache, sondern eine Art, Türen zu öffnen oder geschlossen zu halten. Ein Wort kann höflich sein, unterwürfig, spöttisch oder tödlich, je nachdem, wer es spricht und wer zuhören muß.
Kenntniß der deutschen Sprache
Du trägst ein: sehr gut in Wort und Schrift.
Das ist weniger Auskunft als Voraussetzung. Wer für Wien arbeitet, muß in Wien lesbar sein.
Religionsbekenntniß
Du trägst ein: römisch-katholisch.
Nicht, weil ein Formular zwischen Glauben, Gewohnheit und Gehorsam unterscheiden könnte. Es fragt nach dem Bekenntniß, nicht nach dem Zweifel. Nach der Kirche, nicht nach dem, was in der Nacht übrigbleibt, wenn keine Glocke schlägt.
Familienstand
Du trägst ein: ledig.
Ein schmales Wort. Beinahe leer.
Ledig heißt nicht frei. Es heißt nur, daß noch kein Mann amtlich genug zu dir gehört, um anstelle deines Vaters, deiner Familie, deines Standes oder irgendeines Herrn im Amt als Erklärung zu dienen.
Fremdsprachenkenntniß
Du trägst ein: französisch in Wort und Schrift, italienische Lesekenntniß, Grundkenntnisse des Böhmischen.
Manche Sprachen lernt man für Bücher, manche für Salons, manche für Dienstbotenflure und Bahnhöfe. Auf dem Papier sieht alles nach Unterricht aus. In der Wirklichkeit verrät jede Sprache zuerst, wo man zuhören durfte.
Stand und Beschäftigung
Die Zeile bleibt einen Augenblick leer, weil du nicht weißt, welches Wort für das, was man mit dir vorhat, weniger falsch wäre.
Du siehst zu Nowak hinüber.
„Was soll ich hier eintragen?“
Er nimmt das Formular nicht an sich. Er beugt sich nur leicht vor, als sei selbst die Erklärung eine Sache, die man nicht zu laut sagen dürfe.
„Standesbezeichnung zuerst. Danach die Verwendung.“
„Verwendung?“
„In besonderer Verwendung.“
Das ist offenbar der Ausdruck, auf den man sich geeinigt hat, wenn man weder lügen noch erklären will.
Du trägst ein: Freiin, in besonderer Verwendung.
Das klingt, als hätte man dich in ein Fach gelegt, dessen Beschriftung später noch geändert werden kann.
Titel und Standesbezeichnung
Du trägst ein: Freiin.
Das Wort ist kleiner als der Abstand, den es schafft. Nicht Gräfin. Nicht Fürstin. Nicht bloß Fräulein. Freiin. Ein Titel für Türen, für Vorstellungen, für den Unterschied zwischen einer Zumutung und einer Bitte.
Vor- und Zuname
[Heiße: Valerie Eleonore Josepha.]
Du schreibst die Vornamen aus: Valerie Eleonore Josepha.
Stärke und Gesundheit, höfische Ruhe und rätselhafte Fremdheit und fromme Hoffnung auf Zuwachs. Die Reihe stellt Stärke und Gesundheit, höfische Ruhe und rätselhafte Fremdheit und fromme Hoffnung auf Zuwachs nebeneinander.
Die Namen liegen vollständig auf dem Papier. Aber kein Mensch hört innerlich auf alle Namen zugleich.
[Höre auf: Valerie.]
Valerie ist der Name, bei dem du zuerst antwortest.
Nicht das ganze Papier. Nicht die ganze Familie. Nur der Teil, der gemeint ist, wenn jemand dich ruft und du dich umdrehst, bevor du entschieden hast, ob du gehorchen willst.
[Führe den Namen: Freiin von Rauhenfels.]
Du setzt darunter: Freiin von Rauhenfels.
Der Name hat Höhe, Stein und Abstand in sich. Rauhenfels klingt nach einem Haus, das nicht beweisen will, wie alt es ist, sondern nur erwartet, daß man es glaubt.
Für einen Augenblick ist alles beisammen.
Valerie Eleonore Josepha Freiin von Rauhenfels
weiblich
geboren am 8. November 1877 zu Wien
Umgangssprache deutsch
römisch-katholisch
ledig
Freiin
Freiin, in besonderer Verwendung
Da steht nicht du. Nicht ganz. Aber genug von dir, um abgelegt, weitergereicht und bei Bedarf wieder hervorgeholt zu werden.
Du legst die Feder nieder.
Nowak wartet, bis du das Blatt von selbst zu ihm schiebst. Erst dann nimmt er es auf.
Er liest schnell. Nicht flüchtig. Nur ohne das geringste Bedürfniß, dich vor deinem eigenen Eintrag zu schützen.
„Danke, gnädiges Fräulein.“
Der Zug stößt über eine Weiche. Für einen Augenblick zittert die Schrift auf dem Papier, als wäre sie noch nicht ganz trocken.
@@ -0,0 +1,14 @@
# Eibenreith Character Generator Unified v4
This archive merges the previous name-generator and form-notes archives and updates the Ink according to the final scene architecture discussed in the conversation.
Primary files:
- `ink/character_generator_reworked.ink` — reference/replacement implementation of the whole Personalblatt scene.
- `ink/character_generator_generated_includes_and_routers.ink` — include block and routers for generated name/surname files.
- `ink/character_generator_name_helpers.ink` — shared helper tunnels used only inside generated name/surname Weaves.
- `ink/given_names/*.ink` — 15 generated given-name package files.
- `ink/surnames/*.ink` — 15 generated surname files with added surname comments.
- `spreadsheets/eibenreith_character_generator_v4.xlsx` — combined research and implementation workbook.
- `data/eibenreith_character_generator_data_v4.json` — machine-readable data.
- `INTEGRATION_NOTES.md` — full specification and integration guide.
@@ -0,0 +1,108 @@
// ============================================================================
// GENERATED INCLUDES AND ROUTERS
// ============================================================================
INCLUDE character_generator_name_helpers.ink
INCLUDE given_names/cg_given_names_noble_austrian.ink
INCLUDE given_names/cg_given_names_noble_bohemian.ink
INCLUDE given_names/cg_given_names_noble_hungarian.ink
INCLUDE given_names/cg_given_names_noble_eastern.ink
INCLUDE given_names/cg_given_names_noble_southern.ink
INCLUDE given_names/cg_given_names_middle_austrian.ink
INCLUDE given_names/cg_given_names_middle_bohemian.ink
INCLUDE given_names/cg_given_names_middle_hungarian.ink
INCLUDE given_names/cg_given_names_middle_eastern.ink
INCLUDE given_names/cg_given_names_middle_southern.ink
INCLUDE given_names/cg_given_names_working_austrian.ink
INCLUDE given_names/cg_given_names_working_bohemian.ink
INCLUDE given_names/cg_given_names_working_hungarian.ink
INCLUDE given_names/cg_given_names_working_eastern.ink
INCLUDE given_names/cg_given_names_working_southern.ink
INCLUDE surnames/cg_surnames_noble_austrian.ink
INCLUDE surnames/cg_surnames_noble_bohemian.ink
INCLUDE surnames/cg_surnames_noble_hungarian.ink
INCLUDE surnames/cg_surnames_noble_eastern.ink
INCLUDE surnames/cg_surnames_noble_southern.ink
INCLUDE surnames/cg_surnames_middle_austrian.ink
INCLUDE surnames/cg_surnames_middle_bohemian.ink
INCLUDE surnames/cg_surnames_middle_hungarian.ink
INCLUDE surnames/cg_surnames_middle_eastern.ink
INCLUDE surnames/cg_surnames_middle_southern.ink
INCLUDE surnames/cg_surnames_working_austrian.ink
INCLUDE surnames/cg_surnames_working_bohemian.ink
INCLUDE surnames/cg_surnames_working_hungarian.ink
INCLUDE surnames/cg_surnames_working_eastern.ink
INCLUDE surnames/cg_surnames_working_southern.ink
=== cg_route_given_names ===
{
- class == noble and name_region == austrian:
-> cg_given_names_noble_austrian ->
- class == noble and name_region == bohemian:
-> cg_given_names_noble_bohemian ->
- class == noble and name_region == hungarian:
-> cg_given_names_noble_hungarian ->
- class == noble and name_region == eastern:
-> cg_given_names_noble_eastern ->
- class == noble and name_region == southern:
-> cg_given_names_noble_southern ->
- class == middle and name_region == austrian:
-> cg_given_names_middle_austrian ->
- class == middle and name_region == bohemian:
-> cg_given_names_middle_bohemian ->
- class == middle and name_region == hungarian:
-> cg_given_names_middle_hungarian ->
- class == middle and name_region == eastern:
-> cg_given_names_middle_eastern ->
- class == middle and name_region == southern:
-> cg_given_names_middle_southern ->
- class == working and name_region == austrian:
-> cg_given_names_working_austrian ->
- class == working and name_region == bohemian:
-> cg_given_names_working_bohemian ->
- class == working and name_region == hungarian:
-> cg_given_names_working_hungarian ->
- class == working and name_region == eastern:
-> cg_given_names_working_eastern ->
- class == working and name_region == southern:
-> cg_given_names_working_southern ->
- else:
-> cg_given_names_noble_austrian ->
}
->->
=== cg_route_surnames ===
{
- class == noble and name_region == austrian:
-> cg_surnames_noble_austrian ->
- class == noble and name_region == bohemian:
-> cg_surnames_noble_bohemian ->
- class == noble and name_region == hungarian:
-> cg_surnames_noble_hungarian ->
- class == noble and name_region == eastern:
-> cg_surnames_noble_eastern ->
- class == noble and name_region == southern:
-> cg_surnames_noble_southern ->
- class == middle and name_region == austrian:
-> cg_surnames_middle_austrian ->
- class == middle and name_region == bohemian:
-> cg_surnames_middle_bohemian ->
- class == middle and name_region == hungarian:
-> cg_surnames_middle_hungarian ->
- class == middle and name_region == eastern:
-> cg_surnames_middle_eastern ->
- class == middle and name_region == southern:
-> cg_surnames_middle_southern ->
- class == working and name_region == austrian:
-> cg_surnames_working_austrian ->
- class == working and name_region == bohemian:
-> cg_surnames_working_bohemian ->
- class == working and name_region == hungarian:
-> cg_surnames_working_hungarian ->
- class == working and name_region == eastern:
-> cg_surnames_working_eastern ->
- class == working and name_region == southern:
-> cg_surnames_working_southern ->
- else:
-> cg_surnames_noble_austrian ->
}
->->
@@ -0,0 +1,25 @@
// ============================================================================
// EIBENREITH CHARACTER GENERATOR SHARED NAME HELPERS
// ============================================================================
// Only use these tunnels where the same text would otherwise be repeated inside
// generated name/surname Weaves. Do not use helper tunnels for one-off static
// form sections.
// ============================================================================
=== cg_after_given_names_written ===
Du schreibst die Vornamen aus: {given_names}.
{given_names_meaning_fragment}. {given_names_combination_note}
Die Namen liegen vollständig auf dem Papier. Aber kein Mensch hört innerlich auf alle Namen zugleich.
->->
=== cg_after_common_name_chosen ===
{common_name} ist der Name, bei dem du zuerst antwortest.
Nicht das ganze Papier. Nicht die ganze Familie. Nur der Teil, der gemeint ist, wenn jemand dich ruft und du dich umdrehst, bevor du entschieden hast, ob du gehorchen willst.
->->
=== cg_after_surname_written ===
{surname_comment}
->->
@@ -0,0 +1,683 @@
// ============================================================================
// EIBENREITH CHARACTER GENERATOR REWORKED PERSONALBLATT SCENE
// ============================================================================
// This file is a replacement/reference implementation for the identity papers
// tunnel. It uses list items for class/name_region and switch-style conditional
// blocks. Static form sections remain static text. Shared helper tunnels are
// only used inside generated name/surname Weaves.
// ============================================================================
LIST cg_class_values = noble, middle, working
LIST cg_name_region_values = austrian, bohemian, hungarian, eastern, southern
VAR class = noble
VAR name_region = austrian
VAR gender = "weiblich"
VAR birth_date = ""
VAR birth_year = 0
VAR age = 0
VAR zodiac_sign = ""
VAR zodiac_note = ""
VAR zodiac_comment = ""
VAR birthplace = ""
VAR birthplace_note = ""
VAR birthplace_reflection = ""
VAR everyday_language = ""
VAR everyday_language_noble = ""
VAR everyday_language_middle = ""
VAR everyday_language_working = ""
VAR german_knowledge = "sehr gut in Wort und Schrift"
VAR religion = "römisch-katholisch"
VAR marital_status = "ledig"
VAR education = ""
VAR foreign_languages = ""
VAR foreign_languages_noble = ""
VAR foreign_languages_middle = ""
VAR foreign_languages_working = ""
VAR occupation = ""
VAR title_display = ""
VAR title_part = ""
VAR given_names = ""
VAR given_names_key = ""
VAR given_names_meaning_fragment = ""
VAR given_names_combination_note = ""
VAR common_name = ""
VAR surname = ""
VAR surname_written_form = ""
VAR surname_comment = ""
=== identity_papers_tunnel ===
Das Abteil erster Classe ist mit grünem Tuch ausgeschlagen. Die Fenster zittern in ihren Rahmen. Draußen läuft das Land rückwärts, flach und braun, von Telegraphendrähten in Zeilen geschnitten.
Rittmeister Viktor Alois Nowak sitzt dir gegenüber, getarnt als dein Sekretär. Der dunkle Anzug ist gut gewählt. Nur seine Schultern verraten, daß er nicht zum Diktat geboren wurde.
„Für die Akten“, sagt er.
Er legt dir ein gefaltetes Formular auf den kleinen Tisch zwischen euch. Das Papier ist nicht billig. Der obere Rand trägt keinen gedruckten Adler, nur eine trockene Registraturnummer und den Vermerk: Personal- und Evidenzbogen.
„Es ist nicht mehr als Förmlichkeit“, sagt Nowak.
Das ist eine Lüge. Nicht sehr groß, nicht sehr gut verborgen. Er sagt sie trotzdem höflich genug, daß du sie entgegennehmen kannst.
Du nimmst den Federhalter. Die Tinte hat sich im Glas auf der Seite gesammelt, weil der Wagen in eine lange Kurve geht.
-> cg_form_gender
=== cg_form_gender ===
Geschlecht
□ männlich □ weiblich
~ gender = "weiblich"
Du setzt das Kreuz bei weiblich.
Dein Körper hat deine Möglichkeiten von Geburt an festgelegt, lange bevor du alt genug warst, ein Wort dafür zu besitzen. Das Formular fragt nicht nach mehr. Es will nur wissen, in welche Hälfte des Gesetzes es dich legen darf.
-> cg_form_birthdate
=== cg_form_birthdate ===
Tag und Jahr der Geburt
* [__Notiere__: 7. April 1877.]
~ birth_date = "7. April 1877"
~ birth_year = 1877
~ age = 21
~ zodiac_sign = "Widder"
~ zodiac_note = "Anfang, Angriff, Mut und ungeduldige Bewegung"
~ zodiac_comment = "Du bist unter dem Widder geboren, also unter einem Zeichen, das lieber stößt als wartet. Du mußt nicht daran glauben, um zu wissen, wie brauchbar ein solcher Ruf für ein Medium sein kann."
Du trägst ein: 7. April 1877.
{age} Jahre. Alt genug, um allein mit einem Offizier erster Classe durchs Land geschickt zu werden, und doch nicht alt genug, um vor dem Gesetz ganz dir selbst zu gehören.
{zodiac_comment}
-> cg_form_birthplace
* [__Notiere__: 8. Mai 1877.]
~ birth_date = "8. Mai 1877"
~ birth_year = 1877
~ age = 21
~ zodiac_sign = "Stier"
~ zodiac_note = "Beharrung, Besitzsinn, Sinnlichkeit und ein langsamer, schwer verrückbarer Wille"
~ zodiac_comment = "Der Stier verlangt keine Eile. Er steht, wo andere laufen, und macht gerade daraus eine Drohung. Ob die Sterne das wissen, ist gleichgültig; Menschen glauben es gern genug."
Du trägst ein: 8. Mai 1877.
{age} Jahre. Alt genug, um allein mit einem Offizier erster Classe durchs Land geschickt zu werden, und doch nicht alt genug, um vor dem Gesetz ganz dir selbst zu gehören.
{zodiac_comment}
-> cg_form_birthplace
* [__Notiere__: 7. Juni 1877.]
~ birth_date = "7. Juni 1877"
~ birth_year = 1877
~ age = 21
~ zodiac_sign = "Zwillinge"
~ zodiac_note = "Sprache, Wechsel, Beobachtung und die Gabe, zwei Wahrheiten zugleich auszuhalten"
~ zodiac_comment = "Zwillinge sind für ein Medium bequem. Man darf andeuten, daß zwei Stimmen in einer Brust wohnen, ohne gleich zugeben zu müssen, welche davon lügt."
Du trägst ein: 7. Juni 1877.
{age} Jahre. Alt genug, um allein mit einem Offizier erster Classe durchs Land geschickt zu werden, und doch nicht alt genug, um vor dem Gesetz ganz dir selbst zu gehören.
{zodiac_comment}
-> cg_form_birthplace
* [__Notiere__: 8. Juli 1877.]
~ birth_date = "8. Juli 1877"
~ birth_year = 1877
~ age = 21
~ zodiac_sign = "Krebs"
~ zodiac_note = "Gedächtnis, Schutz, Familie und die alte Kunst, seitwärts an gefährlichen Dingen vorbeizukommen"
~ zodiac_comment = "Der Krebs ist ein häusliches Zeichen, sagen die Kalender. Sie verschweigen nur, daß auch ein Haus Klauen haben kann, wenn man es an der falschen Stelle berührt."
Du trägst ein: 8. Juli 1877.
{age} Jahre. Alt genug, um allein mit einem Offizier erster Classe durchs Land geschickt zu werden, und doch nicht alt genug, um vor dem Gesetz ganz dir selbst zu gehören.
{zodiac_comment}
-> cg_form_birthplace
* [__Notiere__: 8. August 1877.]
~ birth_date = "8. August 1877"
~ birth_year = 1877
~ age = 21
~ zodiac_sign = "Löwe"
~ zodiac_note = "Stolz, Darstellung, Wärme und der Anspruch, gesehen zu werden"
~ zodiac_comment = "Der Löwe liebt Bühne und Licht. Daß man dich von klein auf gelehrt hat, beides zu beherrschen, ist vielleicht keine Sternensache. Es verkauft sich nur besser, wenn es eine ist."
Du trägst ein: 8. August 1877.
{age} Jahre. Alt genug, um allein mit einem Offizier erster Classe durchs Land geschickt zu werden, und doch nicht alt genug, um vor dem Gesetz ganz dir selbst zu gehören.
{zodiac_comment}
-> cg_form_birthplace
* [__Notiere__: 8. September 1877.]
~ birth_date = "8. September 1877"
~ birth_year = 1877
~ age = 21
~ zodiac_sign = "Jungfrau"
~ zodiac_note = "Ordnung, Prüfung, Nützlichkeit und ein Blick für Fehler, bevor sie Schaden anrichten"
~ zodiac_comment = "Die Jungfrau sortiert, mißt und zweifelt. Ein gutes Zeichen für jemanden, der so tun muß, als empfange sie Botschaften, während sie in Wahrheit die Risse im Zimmer liest."
Du trägst ein: 8. September 1877.
{age} Jahre. Alt genug, um allein mit einem Offizier erster Classe durchs Land geschickt zu werden, und doch nicht alt genug, um vor dem Gesetz ganz dir selbst zu gehören.
{zodiac_comment}
-> cg_form_birthplace
* [__Notiere__: 8. Oktober 1877.]
~ birth_date = "8. Oktober 1877"
~ birth_year = 1877
~ age = 21
~ zodiac_sign = "Waage"
~ zodiac_note = "Maß, Urteil, Schönheit und die gefährliche Gewohnheit, Gegensätze in Haltung zu verwandeln"
~ zodiac_comment = "Die Waage ist höflich genug, selbst ein Urteil wie eine Einladung aussehen zu lassen. Daran muß man nicht glauben. Man muß es nur beherrschen."
Du trägst ein: 8. Oktober 1877.
{age} Jahre. Alt genug, um allein mit einem Offizier erster Classe durchs Land geschickt zu werden, und doch nicht alt genug, um vor dem Gesetz ganz dir selbst zu gehören.
{zodiac_comment}
-> cg_form_birthplace
* [__Notiere__: 8. November 1877.]
~ birth_date = "8. November 1877"
~ birth_year = 1877
~ age = 20
~ zodiac_sign = "Skorpion"
~ zodiac_note = "Stachel, Verschwiegenheit, Gedächtnis und eine Neigung zu Dingen, die unter der Oberfläche fortleben"
~ zodiac_comment = "Der Skorpion liegt tief im Herbst. Man sagt ihm Stachel, Verschwiegenheit und Gedächtnis nach. Sehr hübsch. Sehr brauchbar. Nicht zwingend wahr."
Du trägst ein: 8. November 1877.
{age} Jahre. Alt genug, um allein mit einem Offizier erster Classe durchs Land geschickt zu werden, und doch nicht alt genug, um vor dem Gesetz ganz dir selbst zu gehören.
{zodiac_comment}
-> cg_form_birthplace
* [__Notiere__: 8. Dezember 1877.]
~ birth_date = "8. Dezember 1877"
~ birth_year = 1877
~ age = 20
~ zodiac_sign = "Schütze"
~ zodiac_note = "Ferne, Jagd, Wahrheitssuche und eine unartige Vorliebe für offene Türen"
~ zodiac_comment = "Der Schütze zielt auf etwas, das noch nicht da ist. Für ein Medium ist das praktisch. Man nennt es Ahnung, wenn man nicht zugeben will, daß man nur weiter sieht als andere."
Du trägst ein: 8. Dezember 1877.
{age} Jahre. Alt genug, um allein mit einem Offizier erster Classe durchs Land geschickt zu werden, und doch nicht alt genug, um vor dem Gesetz ganz dir selbst zu gehören.
{zodiac_comment}
-> cg_form_birthplace
* [__Notiere__: 8. Jänner 1878.]
~ birth_date = "8. Jänner 1878"
~ birth_year = 1878
~ age = 20
~ zodiac_sign = "Steinbock"
~ zodiac_note = "Aufstieg, Disziplin, Kälte und die Bereitschaft, lange Wege nicht als Beleidigung zu betrachten"
~ zodiac_comment = "Der Steinbock steigt, weil er nicht erwartet, getragen zu werden. Wenn das eine Sternenweisheit ist, dann immerhin eine, die sehr nach Erfahrung klingt."
Du trägst ein: 8. Jänner 1878.
{age} Jahre. Alt genug, um allein mit einem Offizier erster Classe durchs Land geschickt zu werden, und doch nicht alt genug, um vor dem Gesetz ganz dir selbst zu gehören.
{zodiac_comment}
-> cg_form_birthplace
* [__Notiere__: 7. Februar 1878.]
~ birth_date = "7. Februar 1878"
~ birth_year = 1878
~ age = 20
~ zodiac_sign = "Wassermann"
~ zodiac_note = "Eigensinn, Abstand, Reformgeist und die Kälte, mit der man eine bessere Ordnung entwirft"
~ zodiac_comment = "Der Wassermann steht gern einen Schritt außerhalb. Das ist nützlich, solange niemand merkt, daß Abstand nicht dasselbe ist wie Unschuld."
Du trägst ein: 7. Februar 1878.
{age} Jahre. Alt genug, um allein mit einem Offizier erster Classe durchs Land geschickt zu werden, und doch nicht alt genug, um vor dem Gesetz ganz dir selbst zu gehören.
{zodiac_comment}
-> cg_form_birthplace
* [__Notiere__: 8. März 1878.]
~ birth_date = "8. März 1878"
~ birth_year = 1878
~ age = 20
~ zodiac_sign = "Fische"
~ zodiac_note = "Empfänglichkeit, Ahnung, Träumerei und die Gefahr, fremde Stimmungen für eigene Wahrheit zu halten"
~ zodiac_comment = "Die Fische sind ein Geschenk für jedes Medium. Man kann Empfänglichkeit sagen, wo andere Unruhe meinen, und Ahnung, wo man nur zu gut zuhört."
Du trägst ein: 8. März 1878.
{age} Jahre. Alt genug, um allein mit einem Offizier erster Classe durchs Land geschickt zu werden, und doch nicht alt genug, um vor dem Gesetz ganz dir selbst zu gehören.
{zodiac_comment}
-> cg_form_birthplace
=== cg_form_birthplace ===
Geburtsort
* [__Geboren in__: Wien.]
~ birthplace = "Wien"
~ name_region = austrian
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch in Wort und Schrift, italienische Lesekenntniß, Grundkenntnisse des Böhmischen"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "französisch, Stenographie, Grundkenntnisse des Böhmischen"
~ everyday_language_working = "deutsch"
~ foreign_languages_working = "etwas Böhmisch aus Dienst und Straße"
~ birthplace_note = "Residenzluft, Amtsgänge, Theater, Musik und die unverschämte Gewohnheit, die eigene Stadt für den Mittelpunkt jeder vernünftigen Welt zu halten"
~ birthplace_reflection = "Bei Wien denkt niemand an Herkunft, sondern an Maßstab. Du kommst nicht aus einer Stadt, sondern aus der Stelle, an der andere Städte sich zu entschuldigen haben."
Du schreibst: Wien.
{birthplace_note}.
{birthplace_reflection}
-> cg_form_education
* [__Geboren in__: Graz.]
~ birthplace = "Graz"
~ name_region = austrian
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch in Wort und Schrift, italienische Lesekenntniß"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "französisch, Stenographie"
~ everyday_language_working = "deutsch"
~ foreign_languages_working = "keine amtlich vermerkte Fremdsprache"
~ birthplace_note = "südliche Milde, katholische Provinzwürde, Beamtenfleiß und der Geruch einer Stadt, die gebildet sein will, ohne Wien allzu offen zu widersprechen"
~ birthplace_reflection = "Graz klingt harmloser, als es ist. Man erwartet Bildung ohne Gefahr, Frömmigkeit ohne Glanz und Ehrgeiz, der höflich genug ist, nicht wie Ehrgeiz auszusehen."
Du schreibst: Graz.
{birthplace_note}.
{birthplace_reflection}
-> cg_form_education
* [__Geboren in__: Linz.]
~ birthplace = "Linz"
~ name_region = austrian
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch in Wort und Schrift, italienische Lesekenntniß"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "französisch, Stenographie"
~ everyday_language_working = "deutsch"
~ foreign_languages_working = "keine amtlich vermerkte Fremdsprache"
~ birthplace_note = "Donauhandel, nüchterne Bürgerlichkeit, Handwerk, kirchliche Ordnung und die Vorstellung, daß Verläßlichkeit wichtiger sei als geistreicher Auftritt"
~ birthplace_reflection = "Linz macht dich in fremden Augen nicht geheimnisvoll. Es macht dich brauchbar, ordentlich und schwerer zu unterschätzen, als ein Wiener zugeben würde."
Du schreibst: Linz.
{birthplace_note}.
{birthplace_reflection}
-> cg_form_education
* [__Geboren in__: Salzburg.]
~ birthplace = "Salzburg"
~ name_region = austrian
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch in Wort und Schrift, italienische Lesekenntniß"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "französisch, Stenographie"
~ everyday_language_working = "deutsch"
~ foreign_languages_working = "keine amtlich vermerkte Fremdsprache"
~ birthplace_note = "geistliche Vergangenheit, Musik, helle Fassaden, frommer Stolz und eine Schönheit, die man gern für Tugend hält"
~ birthplace_reflection = "Salzburg klingt nach Kirche, Musik und sauberem Stein. Man erwartet Anmut von dir, noch bevor man wissen will, ob du Verstand besitzt."
Du schreibst: Salzburg.
{birthplace_note}.
{birthplace_reflection}
-> cg_form_education
* [__Geboren in__: Innsbruck.]
~ birthplace = "Innsbruck"
~ name_region = austrian
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch in Wort und Schrift, italienische Lesekenntniß"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "französisch, Stenographie"
~ everyday_language_working = "deutsch"
~ foreign_languages_working = "keine amtlich vermerkte Fremdsprache"
~ birthplace_note = "Berge, Landesfrömmigkeit, kaiserliche Treue, sture Körperkraft und der Verdacht, daß man dort eher betet als argumentiert"
~ birthplace_reflection = "Innsbruck gibt dir den Ruf fester Knochen und fester Grundsätze. Beides kann nützlich sein, solange niemand merkt, daß du auch zweifeln kannst."
Du schreibst: Innsbruck.
{birthplace_note}.
{birthplace_reflection}
-> cg_form_education
* [__Geboren in__: Prag.]
~ birthplace = "Prag"
~ name_region = bohemian
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch in Wort und Schrift, böhmisch, italienische Lesekenntniß"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "französisch, böhmisch, Stenographie"
~ everyday_language_working = "böhmisch und deutsch"
~ foreign_languages_working = "deutsch und böhmisch"
~ birthplace_note = "alte Königswürde, böhmischer Eigensinn, deutsche Bildung, tschechische Nähe und eine Stadt, in der jede Sprache wie eine Stellungnahme klingt"
~ birthplace_reflection = "Prag macht dich nie ganz einfach. Man hört in deinem Geburtsort Geschichte, Widerspruch und die Möglichkeit, daß du zwei Sätze meinst, wenn du nur einen sagst."
Du schreibst: Prag.
{birthplace_note}.
{birthplace_reflection}
-> cg_form_education
* [__Geboren in__: Brünn.]
~ birthplace = "Brünn"
~ name_region = bohemian
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch, böhmisch"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "böhmisch, französisch möglich"
~ everyday_language_working = "böhmisch und deutsch"
~ foreign_languages_working = "deutsch als zweite Sprache"
~ birthplace_note = "mährische Nüchternheit, Fabriken, deutsche Amtsform, böhmische Nähe und ein praktischer Verstand, der weniger glänzt als er schneidet"
~ birthplace_reflection = "Brünn klingt nicht romantisch. Gerade deshalb nimmt man dich vielleicht für brauchbarer, ordentlicher und gefährlich weniger eitel."
Du schreibst: Brünn.
{birthplace_note}.
{birthplace_reflection}
-> cg_form_education
* [__Geboren in__: Budapest.]
~ birthplace = "Budapest"
~ name_region = hungarian
~ everyday_language_noble = "deutsch und ungarisch"
~ foreign_languages_noble = "französisch in Wort und Schrift, ungarisch, italienische Lesekenntniß"
~ everyday_language_middle = "deutsch und ungarisch"
~ foreign_languages_middle = "ungarisch, französisch, Stenographie"
~ everyday_language_working = "ungarisch"
~ foreign_languages_working = "etwas deutsch neben ungarisch"
~ birthplace_note = "neue Pracht, ungarischer Stolz, breite Straßen, politische Empfindlichkeit und eine Selbstsicherheit, die Wien zugleich bewundert und verdächtigt"
~ birthplace_reflection = "Budapest läßt Wien schlechter schlafen, als Wien zugibt. Wer dort geboren ist, trägt den Verdacht mit sich, sich nicht ordentlich unterzuordnen."
Du schreibst: Budapest.
{birthplace_note}.
{birthplace_reflection}
-> cg_form_education
* [__Geboren in__: Krakau.]
~ birthplace = "Krakau"
~ name_region = eastern
~ everyday_language_noble = "polnisch"
~ foreign_languages_noble = "französisch, deutsch"
~ everyday_language_middle = "polnisch"
~ foreign_languages_middle = "deutsch, französisch möglich"
~ everyday_language_working = "polnisch"
~ foreign_languages_working = "deutsch als zweite Sprache möglich"
~ birthplace_note = "polnische Erinnerung, fromme Würde, verlorene Staatlichkeit, Salons voller Geschichte und der Verdacht, daß jedes Gespräch auch politisch sein könnte"
~ birthplace_reflection = "Krakau gibt dir mehr Vergangenheit, als in eine Formularzeile paßt. Man erwartet Stolz von dir, vielleicht auch Schwermut, und beides kann man notfalls spielen."
Du schreibst: Krakau.
{birthplace_note}.
{birthplace_reflection}
-> cg_form_education
* [__Geboren in__: Lemberg.]
~ birthplace = "Lemberg"
~ name_region = eastern
~ everyday_language_noble = "polnisch und deutsch"
~ foreign_languages_noble = "französisch, deutsch, ruthenisch möglich"
~ everyday_language_middle = "polnisch und deutsch"
~ foreign_languages_middle = "deutsch, ruthenisch möglich"
~ everyday_language_working = "polnisch"
~ foreign_languages_working = "deutsch als zweite Sprache möglich"
~ birthplace_note = "östliche Weite, polnische Form, ruthenische Nähe, jüdische Gelehrsamkeit und das Wiener Vorurteil vom armen, übervölkerten Rand der Monarchie"
~ birthplace_reflection = "Lemberg macht dich für Wien zugleich gebildet und verdächtig fern. Man glaubt dort gern, am Rand der Monarchie beginne bereits die Unordnung."
Du schreibst: Lemberg.
{birthplace_note}.
{birthplace_reflection}
-> cg_form_education
* [__Geboren in__: Czernowitz.]
~ birthplace = "Czernowitz"
~ name_region = eastern
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch in Wort und Schrift, polnisch oder ruthenisch, italienische Lesekenntniß"
~ everyday_language_middle = "deutsch"
~ foreign_languages_middle = "polnisch oder ruthenisch, französisch, Stenographie"
~ everyday_language_working = "deutsch"
~ foreign_languages_working = "etwas polnisch oder ruthenisch aus Straße und Dienst"
~ birthplace_note = "Sprachengewirr, Beamtenkaffee, östliche Ferne, jüdische und ruthenische Nähe und die Kunst, österreichisch zu wirken, ohne je ganz westlich zu sein"
~ birthplace_reflection = "Czernowitz klingt, als habe die Monarchie am äußersten Rand noch einmal versucht, sich selbst zu erklären. Das macht dich nicht einfacher, aber brauchbarer."
Du schreibst: Czernowitz.
{birthplace_note}.
{birthplace_reflection}
-> cg_form_education
* [__Geboren in__: Triest.]
~ birthplace = "Triest"
~ name_region = southern
~ everyday_language_noble = "deutsch und italienisch"
~ foreign_languages_noble = "französisch in Wort und Schrift, italienisch, slowenische Grundkenntnisse"
~ everyday_language_middle = "italienisch und deutsch"
~ foreign_languages_middle = "italienisch, deutsch, französisch, Stenographie"
~ everyday_language_working = "italienisch"
~ foreign_languages_working = "etwas deutsch oder slowenisch aus Dienst und Hafen"
~ birthplace_note = "Meerluft, Handel, italienische Eleganz, slawische Nachbarschaft, fremde Waren und die Ahnung, daß die Monarchie dort nicht endet, sondern ausfranst"
~ birthplace_reflection = "Triest macht dich weltläufig, noch bevor du den Mund öffnest. Man erwartet Salz, Handel, schöne Handschuhe und eine Loyalität, die vom Wind abhängt."
Du schreibst: Triest.
{birthplace_note}.
{birthplace_reflection}
-> cg_form_education
* [__Geboren in__: Laibach.]
~ birthplace = "Laibach"
~ name_region = southern
~ everyday_language_noble = "deutsch"
~ foreign_languages_noble = "französisch, slowenisch möglich"
~ everyday_language_middle = "deutsch und slowenisch"
~ foreign_languages_middle = "deutsch, slowenisch"
~ everyday_language_working = "slowenisch"
~ foreign_languages_working = "deutsch als zweite Sprache möglich"
~ birthplace_note = "slowenische Beharrlichkeit, katholische Enge, provinzielle Ordnung und der Blick der Hauptstadt, der kleine Städte gern für kleine Geister hält"
~ birthplace_reflection = "Laibach läßt Wien nicht erschrecken. Das ist sein Vorteil. Wer unterschätzt wird, wird seltener bewacht."
Du schreibst: Laibach.
{birthplace_note}.
{birthplace_reflection}
-> cg_form_education
* [__Geboren in__: Agram.]
~ birthplace = "Agram"
~ name_region = southern
~ everyday_language_noble = "kroatisch und deutsch"
~ foreign_languages_noble = "französisch, deutsch, ungarisch möglich"
~ everyday_language_middle = "kroatisch und deutsch"
~ foreign_languages_middle = "deutsch, ungarisch möglich"
~ everyday_language_working = "kroatisch"
~ foreign_languages_working = "deutsch als zweite Sprache möglich"
~ birthplace_note = "kroatischer Stolz, südliche Schärfe, katholische Loyalität, militärische Erinnerung und die Frage, ob man nach Wien, Budapest oder zu sich selbst gehört"
~ birthplace_reflection = "Agram klingt nach Treue mit Widerhaken. Man nimmt an, daß du dienen kannst, aber nicht, daß du dich dabei innerlich verbeugst."
Du schreibst: Agram.
{birthplace_note}.
{birthplace_reflection}
-> cg_form_education
=== cg_form_education ===
Genossene Bildung
* [__Notiere__: häuslicher Unterricht, katholisches Mädchenpensionat, Privatstunden in französischer Sprache, Clavierspiel und Zeichnen.]
~ class = noble
~ education = "häuslicher Unterricht, katholisches Mädchenpensionat, Privatstunden in französischer Sprache, Clavierspiel und Zeichnen"
Du schreibst: {education}.
So sieht eine Erziehung aus, wenn man sie auf eine Zeile zwingt. Kein Wort von kalten Schlafsälen. Kein Wort von geraden Rücken, gesenkten Stimmen und den langen Nachmittagen, an denen man lernt, daß ein Fehler in der Haltung schwerer wiegen kann als ein Fehler im Denken.
-> cg_set_derived_fields
* [__Notiere__: fünf Classen Volksschule, drei Classen Mädchen-Bürgerschule, Fortbildung in Stenographie und Kanzleiarbeit.]
~ class = middle
~ education = "fünf Classen Volksschule, drei Classen Mädchen-Bürgerschule, Fortbildung in Stenographie und Kanzleiarbeit"
Du schreibst: {education}.
So sieht Bildung aus, wenn man sie nützlich genug macht, um geduldet zu werden. Rechnen, Schreiben, Stenographie, Kanzleiarbeit. Nicht gelehrt genug, um Titel zu tragen, aber brauchbar genug, um Männer in Ämtern nervös zu machen.
-> cg_set_derived_fields
* [__Notiere__: fünf Classen Volksschule, anschließend Dienstbotenstelle in adeligem Haushalt.]
~ class = working
~ education = "fünf Classen Volksschule, anschließend Dienstbotenstelle in adeligem Haushalt"
Du schreibst: {education}.
So sieht Bildung aus, wenn Armut die Schulbank früher beendet als der Verstand. Fünf Classen, dann fremde Böden, fremde Teller, fremde Klingeln und die Kunst, in Räumen zu verschwinden, in denen man alles hört.
-> cg_set_derived_fields
=== cg_set_derived_fields ===
{
- class == noble:
~ everyday_language = everyday_language_noble
~ foreign_languages = foreign_languages_noble
~ occupation = "Freiin, in besonderer Verwendung"
~ title_display = "Freiin"
~ title_part = "Freiin von"
- class == middle:
~ everyday_language = everyday_language_middle
~ foreign_languages = foreign_languages_middle
~ occupation = "Privatbeamtin in besonderer Verwendung"
~ title_display = "—"
~ title_part = ""
- class == working:
~ everyday_language = everyday_language_working
~ foreign_languages = foreign_languages_working
~ occupation = "ehemaliges Dienstmädchen, in besonderer Verwendung"
~ title_display = "—"
~ title_part = ""
}
-> cg_form_language
=== cg_form_language ===
Umgangssprache
Du trägst ein: {everyday_language}.
Es ist nicht nur eine Sprache, sondern eine Art, Türen zu öffnen oder geschlossen zu halten. Ein Wort kann höflich sein, unterwürfig, spöttisch oder tödlich, je nachdem, wer es spricht und wer zuhören muß.
-> cg_form_german_knowledge
=== cg_form_german_knowledge ===
Kenntniß der deutschen Sprache
Du trägst ein: {german_knowledge}.
Das ist weniger Auskunft als Voraussetzung. Wer für Wien arbeitet, muß in Wien lesbar sein.
-> cg_form_religion
=== cg_form_religion ===
Religionsbekenntniß
Du trägst ein: {religion}.
Nicht, weil ein Formular zwischen Glauben, Gewohnheit und Gehorsam unterscheiden könnte. Es fragt nach dem Bekenntniß, nicht nach dem Zweifel. Nach der Kirche, nicht nach dem, was in der Nacht übrigbleibt, wenn keine Glocke schlägt.
-> cg_form_marital_status
=== cg_form_marital_status ===
Familienstand
Du trägst ein: {marital_status}.
Ein schmales Wort. Beinahe leer.
Ledig heißt nicht frei. Es heißt nur, daß noch kein Mann amtlich genug zu dir gehört, um anstelle deines Vaters, deiner Familie, deines Standes oder irgendeines Herrn im Amt als Erklärung zu dienen.
-> cg_form_foreign_languages
=== cg_form_foreign_languages ===
Fremdsprachenkenntniß
Du trägst ein: {foreign_languages}.
Manche Sprachen lernt man für Bücher, manche für Salons, manche für Dienstbotenflure und Bahnhöfe. Auf dem Papier sieht alles nach Unterricht aus. In der Wirklichkeit verrät jede Sprache zuerst, wo man zuhören durfte.
-> cg_form_occupation
=== cg_form_occupation ===
Stand und Beschäftigung
Die Zeile bleibt einen Augenblick leer, weil du nicht weißt, welches Wort für das, was man mit dir vorhat, weniger falsch wäre.
Du siehst zu Nowak hinüber.
„Was soll ich hier eintragen?“
Er nimmt das Formular nicht an sich. Er beugt sich nur leicht vor, als sei selbst die Erklärung eine Sache, die man nicht zu laut sagen dürfe.
„Standesbezeichnung zuerst. Danach die Verwendung.“
„Verwendung?“
„In besonderer Verwendung.“
Das ist offenbar der Ausdruck, auf den man sich geeinigt hat, wenn man weder lügen noch erklären will.
Du trägst ein: {occupation}.
{
- class == noble:
Das klingt, als hätte man dich in ein Fach gelegt, dessen Beschriftung später noch geändert werden kann.
- class == middle:
Privatbeamtin. Das Wort versucht, nach Stellung zu klingen, ohne dir Rang zu geben. In besonderer Verwendung. Das Amt legt den Schleier darüber.
- class == working:
Ehemaliges Dienstmädchen. Das Wort bleibt stehen, auch wenn man dir nun bessere Handschuhe gibt. In besonderer Verwendung. Das Amt kann aufsteigen lassen, ohne zu vergessen, woher es jemanden geholt hat.
}
-> cg_form_title
=== cg_form_title ===
Titel und Standesbezeichnung
Du trägst ein: {title_display}.
{
- class == noble:
Das Wort ist kleiner als der Abstand, den es schafft. Nicht Gräfin. Nicht Fürstin. Nicht bloß Fräulein. Freiin. Ein Titel für Türen, für Vorstellungen, für den Unterschied zwischen einer Zumutung und einer Bitte.
- class == middle:
Der Strich bleibt stehen, wo ein Mann vielleicht ein „Dr.“ vor sich hergetragen hätte. Du bist nicht ungelehrt genug, um ihn nicht zu bemerken.
- class == working:
Der Strich ist ehrlich. Kein Titel, kein Prädicat, keine höfliche Abkürzung vor dem Namen. Nur die Stelle, an der andere Menschen Abstand eintragen.
}
-> cg_form_name
=== cg_form_name ===
Vor- und Zuname
-> cg_route_given_names ->
-> cg_form_done
=== cg_form_done ===
Für einen Augenblick ist alles beisammen.
{given_names} {surname_written_form}
weiblich
geboren am {birth_date} zu {birthplace}
Umgangssprache {everyday_language}
{religion}
{marital_status}
{title_display}
{occupation}
Da steht nicht du. Nicht ganz. Aber genug von dir, um abgelegt, weitergereicht und bei Bedarf wieder hervorgeholt zu werden.
Du legst die Feder nieder.
Nowak wartet, bis du das Blatt von selbst zu ihm schiebst. Erst dann nimmt er es auf.
Er liest schnell. Nicht flüchtig. Nur ohne das geringste Bedürfniß, dich vor deinem eigenen Eintrag zu schützen.
„Danke, gnädiges Fräulein.“
Der Zug stößt über eine Weiche. Für einen Augenblick zittert die Schrift auf dem Papier, als wäre sie noch nicht ganz trocken.
->->
@@ -0,0 +1,191 @@
// Generated given-name package choices for Bürgertum / deutsch-österreichisch
=== cg_given_names_middle_austrian ===
* [__Heiße__: Anna Maria.]
~ given_names = "Anna Maria"
~ given_names_key = "anna_maria"
~ given_names_meaning_fragment = "Gnade und ruhige Beständigkeit und marianische Frömmigkeit und alte Würde"
~ given_names_combination_note = "Die Verbindung stellt Gnade und ruhige Beständigkeit und marianische Frömmigkeit und alte Würde nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Anni.]
~ common_name = "Anni"
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Josepha Therese.]
~ given_names = "Josepha Therese"
~ given_names_key = "josepha_therese"
~ given_names_meaning_fragment = "fromme Hoffnung auf Zuwachs und sommerliche Wärme und Ernteklang"
~ given_names_combination_note = "Die Verbindung stellt fromme Hoffnung auf Zuwachs und sommerliche Wärme und Ernteklang nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
* * [__Höre auf__: Therese.]
~ common_name = "Therese"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Clara Eleonore.]
~ given_names = "Clara Eleonore"
~ given_names_key = "clara_eleonore"
~ given_names_meaning_fragment = "Helligkeit und klare Sichtbarkeit und höfische Ruhe und rätselhafte Fremdheit"
~ given_names_combination_note = "Die Verbindung stellt Helligkeit und klare Sichtbarkeit und höfische Ruhe und rätselhafte Fremdheit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Clara.]
~ common_name = "Clara"
* * [__Höre auf__: Clari.]
~ common_name = "Clari"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Franziska Barbara.]
~ given_names = "Franziska Barbara"
~ given_names_key = "franziska_barbara"
~ given_names_meaning_fragment = "freie Bewegung in ordentlicher Form und kommt von barbaros und bedeutet die Fremde"
~ given_names_combination_note = "Die Verbindung stellt freie Bewegung in ordentlicher Form und kommt von barbaros und bedeutet die Fremde nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
* * [__Höre auf__: Barbara.]
~ common_name = "Barbara"
* * [__Höre auf__: Barbl.]
~ common_name = "Barbl"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Katharina Johanna.]
~ given_names = "Katharina Johanna"
~ given_names_key = "katharina_johanna"
~ given_names_meaning_fragment = "Reinheit und stolzer Heiligenklang und göttliche Gnade und belastbare Frömmigkeit"
~ given_names_combination_note = "Die Verbindung stellt Reinheit und stolzer Heiligenklang und göttliche Gnade und belastbare Frömmigkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Katharina.]
~ common_name = "Katharina"
* * [__Höre auf__: Kathi.]
~ common_name = "Kathi"
* * [__Höre auf__: Johanna.]
~ common_name = "Johanna"
* * [__Höre auf__: Hanni.]
~ common_name = "Hanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Elisabeth Sophie.]
~ given_names = "Elisabeth Sophie"
~ given_names_key = "elisabeth_sophie"
~ given_names_meaning_fragment = "Gottesversprechen und königliche Erinnerung und Weisheit und stilles Maß"
~ given_names_combination_note = "Die Verbindung stellt Gottesversprechen und königliche Erinnerung und Weisheit und stilles Maß nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Elisabeth.]
~ common_name = "Elisabeth"
* * [__Höre auf__: Liesl.]
~ common_name = "Liesl"
* * [__Höre auf__: Sophie.]
~ common_name = "Sophie"
* * [__Höre auf__: Sopherl.]
~ common_name = "Sopherl"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Cäcilie Amalie.]
~ given_names = "Cäcilie Amalie"
~ given_names_key = "caecilie_amalie"
~ given_names_meaning_fragment = "Musik und verwundbare Würde und Arbeitseifer und sanfte Behaglichkeit"
~ given_names_combination_note = "Die Verbindung stellt Musik und verwundbare Würde und Arbeitseifer und sanfte Behaglichkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Cäcilie.]
~ common_name = "Cäcilie"
* * [__Höre auf__: Cilli.]
~ common_name = "Cilli"
* * [__Höre auf__: Amalie.]
~ common_name = "Amalie"
* * [__Höre auf__: Mali.]
~ common_name = "Mali"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Magdalena Rosa.]
~ given_names = "Magdalena Rosa"
~ given_names_key = "magdalena_rosa"
~ given_names_meaning_fragment = "biblische Tiefe und Nähe zur Buße und Rose und offene Lieblichkeit"
~ given_names_combination_note = "Die Verbindung stellt biblische Tiefe und Nähe zur Buße und Rose und offene Lieblichkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Magdalena.]
~ common_name = "Magdalena"
* * [__Höre auf__: Leni.]
~ common_name = "Leni"
* * [__Höre auf__: Rosa.]
~ common_name = "Rosa"
* * [__Höre auf__: Rosi.]
~ common_name = "Rosi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Hermine Pauline.]
~ given_names = "Hermine Pauline"
~ given_names_key = "hermine_pauline"
~ given_names_meaning_fragment = "gehört in den Umkreis von Hermann und Hermes und wirkt im 19. Jahrhundert vornehm bürgerlich und feine Beweglichkeit und Gelehrsamkeit"
~ given_names_combination_note = "Die Verbindung stellt gehört in den Umkreis von Hermann und Hermes und wirkt im 19. Jahrhundert vornehm bürgerlich und feine Beweglichkeit und Gelehrsamkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Hermine.]
~ common_name = "Hermine"
* * [__Höre auf__: Hermi.]
~ common_name = "Hermi"
* * [__Höre auf__: Pauline.]
~ common_name = "Pauline"
* * [__Höre auf__: Pauli.]
~ common_name = "Pauli"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Caroline Mathilde.]
~ given_names = "Caroline Mathilde"
~ given_names_key = "caroline_mathilde"
~ given_names_meaning_fragment = "alte Freiheit und weltläufige Beweglichkeit und Kampfkraft und fester Stand"
~ given_names_combination_note = "Die Verbindung stellt alte Freiheit und weltläufige Beweglichkeit und Kampfkraft und fester Stand nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Caroline.]
~ common_name = "Caroline"
* * [__Höre auf__: Lina.]
~ common_name = "Lina"
* * [__Höre auf__: Mathilde.]
~ common_name = "Mathilde"
* * [__Höre auf__: Tilli.]
~ common_name = "Tilli"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,191 @@
// Generated given-name package choices for Bürgertum / böhmisch-mährisch
=== cg_given_names_middle_bohemian ===
* [__Heiße__: Marie Anna.]
~ given_names = "Marie Anna"
~ given_names_key = "marie_anna"
~ given_names_meaning_fragment = "marianische Frömmigkeit und vertraute Weichheit und Gnade und ruhige Beständigkeit"
~ given_names_combination_note = "Die Verbindung stellt marianische Frömmigkeit und vertraute Weichheit und Gnade und ruhige Beständigkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Marie.]
~ common_name = "Marie"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Anka.]
~ common_name = "Anka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Josefa Antonie.]
~ given_names = "Josefa Antonie"
~ given_names_key = "josefa_antonie"
~ given_names_meaning_fragment = "fromme Hoffnung auf Zuwachs und römischer Familienklang und feste Haltung"
~ given_names_combination_note = "Die Verbindung stellt fromme Hoffnung auf Zuwachs und römischer Familienklang und feste Haltung nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Josefa.]
~ common_name = "Josefa"
* * [__Höre auf__: Pepička.]
~ common_name = "Pepička"
* * [__Höre auf__: Antonie.]
~ common_name = "Antonie"
* * [__Höre auf__: Tonka.]
~ common_name = "Tonka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Františka Terezie.]
~ given_names = "Františka Terezie"
~ given_names_key = "frantiska_terezie"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Die Verbindung stellt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Františka.]
~ common_name = "Františka"
* * [__Höre auf__: Fanynka.]
~ common_name = "Fanynka"
* * [__Höre auf__: Terezie.]
~ common_name = "Terezie"
* * [__Höre auf__: Terezka.]
~ common_name = "Terezka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Kateřina Johanna.]
~ given_names = "Kateřina Johanna"
~ given_names_key = "katerina_johanna"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und göttliche Gnade und belastbare Frömmigkeit"
~ given_names_combination_note = "Die Verbindung stellt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und göttliche Gnade und belastbare Frömmigkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Kateřina.]
~ common_name = "Kateřina"
* * [__Höre auf__: Katka.]
~ common_name = "Katka"
* * [__Höre auf__: Johanna.]
~ common_name = "Johanna"
* * [__Höre auf__: Hanni.]
~ common_name = "Hanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ludmilla Clara.]
~ given_names = "Ludmilla Clara"
~ given_names_key = "ludmilla_clara"
~ given_names_meaning_fragment = "Volksliebe und slawische Wärme und Helligkeit und klare Sichtbarkeit"
~ given_names_combination_note = "Die Verbindung stellt Volksliebe und slawische Wärme und Helligkeit und klare Sichtbarkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ludmilla.]
~ common_name = "Ludmilla"
* * [__Höre auf__: Mila.]
~ common_name = "Mila"
* * [__Höre auf__: Clara.]
~ common_name = "Clara"
* * [__Höre auf__: Clari.]
~ common_name = "Clari"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Božena Eliška.]
~ given_names = "Božena Eliška"
~ given_names_key = "bozena_eliska"
~ given_names_meaning_fragment = "Gottesgabe und slawische Eigenart und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Die Verbindung stellt Gottesgabe und slawische Eigenart und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Božena.]
~ common_name = "Božena"
* * [__Höre auf__: Božka.]
~ common_name = "Božka"
* * [__Höre auf__: Eliška.]
~ common_name = "Eliška"
* * [__Höre auf__: Eli.]
~ common_name = "Eli"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Zdenka Marie.]
~ given_names = "Zdenka Marie"
~ given_names_key = "zdenka_marie"
~ given_names_meaning_fragment = "slawische Aufbaukraft und ein weniger wienerischer Ton und marianische Frömmigkeit und vertraute Weichheit"
~ given_names_combination_note = "Die Verbindung stellt slawische Aufbaukraft und ein weniger wienerischer Ton und marianische Frömmigkeit und vertraute Weichheit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Zdenka.]
~ common_name = "Zdenka"
* * [__Höre auf__: Zdeni.]
~ common_name = "Zdeni"
* * [__Höre auf__: Marie.]
~ common_name = "Marie"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Růžena Barbara.]
~ given_names = "Růžena Barbara"
~ given_names_key = "ruzena_barbara"
~ given_names_meaning_fragment = "gehört zur Rose und trägt ihren blühenden Klang und kommt von barbaros und bedeutet die Fremde"
~ given_names_combination_note = "Die Verbindung stellt gehört zur Rose und trägt ihren blühenden Klang und kommt von barbaros und bedeutet die Fremde nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Růžena.]
~ common_name = "Růžena"
* * [__Höre auf__: Růža.]
~ common_name = "Růža"
* * [__Höre auf__: Barbara.]
~ common_name = "Barbara"
* * [__Höre auf__: Barča.]
~ common_name = "Barča"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Julie Karolina.]
~ given_names = "Julie Karolina"
~ given_names_key = "julie_karolina"
~ given_names_meaning_fragment = "auf den römischen Namen Julius zurück, dessen Bedeutung unsicher ist und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Die Verbindung stellt auf den römischen Namen Julius zurück, dessen Bedeutung unsicher ist und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Julie.]
~ common_name = "Julie"
* * [__Höre auf__: Julka.]
~ common_name = "Julka"
* * [__Höre auf__: Karolina.]
~ common_name = "Karolina"
* * [__Höre auf__: Lina.]
~ common_name = "Lina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Albína Amalie.]
~ given_names = "Albína Amalie"
~ given_names_key = "albina_amalie"
~ given_names_meaning_fragment = "kommt von albus und bedeutet weiß oder hell und Arbeitseifer und sanfte Behaglichkeit"
~ given_names_combination_note = "Die Verbindung stellt kommt von albus und bedeutet weiß oder hell und Arbeitseifer und sanfte Behaglichkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Albína.]
~ common_name = "Albína"
* * [__Höre auf__: Bína.]
~ common_name = "Bína"
* * [__Höre auf__: Amalie.]
~ common_name = "Amalie"
* * [__Höre auf__: Amálka.]
~ common_name = "Amálka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,191 @@
// Generated given-name package choices for Bürgertum / galizisch-bukowinisch
=== cg_given_names_middle_eastern ===
* [__Heiße__: Maria Anna.]
~ given_names = "Maria Anna"
~ given_names_key = "maria_anna"
~ given_names_meaning_fragment = "marianische Frömmigkeit und alte Würde und Gnade und ruhige Beständigkeit"
~ given_names_combination_note = "Die Verbindung stellt marianische Frömmigkeit und alte Würde und Gnade und ruhige Beständigkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Marynia.]
~ common_name = "Marynia"
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Ania.]
~ common_name = "Ania"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Zofia Jadwiga.]
~ given_names = "Zofia Jadwiga"
~ given_names_key = "zofia_jadwiga"
~ given_names_meaning_fragment = "Weisheit und polnische Bildung und Schutzkraft und alte polnische Würde"
~ given_names_combination_note = "Die Verbindung stellt Weisheit und polnische Bildung und Schutzkraft und alte polnische Würde nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Zofia.]
~ common_name = "Zofia"
* * [__Höre auf__: Zosia.]
~ common_name = "Zosia"
* * [__Höre auf__: Jadwiga.]
~ common_name = "Jadwiga"
* * [__Höre auf__: Jadzia.]
~ common_name = "Jadzia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Katarzyna Antonina.]
~ given_names = "Katarzyna Antonina"
~ given_names_key = "katarzyna_antonina"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Die Verbindung stellt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Katarzyna.]
~ common_name = "Katarzyna"
* * [__Höre auf__: Kasia.]
~ common_name = "Kasia"
* * [__Höre auf__: Antonina.]
~ common_name = "Antonina"
* * [__Höre auf__: Tosia.]
~ common_name = "Tosia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Agnieszka Helena.]
~ given_names = "Agnieszka Helena"
~ given_names_key = "agnieszka_helena"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Die Verbindung stellt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Agnieszka.]
~ common_name = "Agnieszka"
* * [__Höre auf__: Aga.]
~ common_name = "Aga"
* * [__Höre auf__: Helena.]
~ common_name = "Helena"
* * [__Höre auf__: Hela.]
~ common_name = "Hela"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Stanisława Józefa.]
~ given_names = "Stanisława Józefa"
~ given_names_key = "stanislawa_jozefa"
~ given_names_meaning_fragment = "die weibliche Form von Stanisław und verbindet Werden mit Ruhm und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Die Verbindung stellt die weibliche Form von Stanisław und verbindet Werden mit Ruhm und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Stanisława.]
~ common_name = "Stanisława"
* * [__Höre auf__: Stasia.]
~ common_name = "Stasia"
* * [__Höre auf__: Józefa.]
~ common_name = "Józefa"
* * [__Höre auf__: Józia.]
~ common_name = "Józia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Bronisława Karolina.]
~ given_names = "Bronisława Karolina"
~ given_names_key = "bronislawa_karolina"
~ given_names_meaning_fragment = "die weibliche Form von Bronisław und verbindet Schutz mit Ruhm und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Die Verbindung stellt die weibliche Form von Bronisław und verbindet Schutz mit Ruhm und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Bronisława.]
~ common_name = "Bronisława"
* * [__Höre auf__: Bronia.]
~ common_name = "Bronia"
* * [__Höre auf__: Karolina.]
~ common_name = "Karolina"
* * [__Höre auf__: Lina.]
~ common_name = "Lina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Aniela Marianna.]
~ given_names = "Aniela Marianna"
~ given_names_key = "aniela_marianna"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Die Verbindung stellt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Aniela.]
~ common_name = "Aniela"
* * [__Höre auf__: Anielka.]
~ common_name = "Anielka"
* * [__Höre auf__: Marianna.]
~ common_name = "Marianna"
* * [__Höre auf__: Marynia.]
~ common_name = "Marynia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Tekla Salomea.]
~ given_names = "Tekla Salomea"
~ given_names_key = "tekla_salomea"
~ given_names_meaning_fragment = "kommt von Thekla und bedeutet Ruhm Gottes und kommt von Salome und bedeutet Frieden"
~ given_names_combination_note = "Die Verbindung stellt kommt von Thekla und bedeutet Ruhm Gottes und kommt von Salome und bedeutet Frieden nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Tekla.]
~ common_name = "Tekla"
* * [__Höre auf__: Teklunia.]
~ common_name = "Teklunia"
* * [__Höre auf__: Salomea.]
~ common_name = "Salomea"
* * [__Höre auf__: Sala.]
~ common_name = "Sala"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Cecylia Leokadia.]
~ given_names = "Cecylia Leokadia"
~ given_names_key = "cecylia_leokadia"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Die Verbindung stellt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Cecylia.]
~ common_name = "Cecylia"
* * [__Höre auf__: Cesia.]
~ common_name = "Cesia"
* * [__Höre auf__: Leokadia.]
~ common_name = "Leokadia"
* * [__Höre auf__: Lodzia.]
~ common_name = "Lodzia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ludwika Melania.]
~ given_names = "Ludwika Melania"
~ given_names_key = "ludwika_melania"
~ given_names_meaning_fragment = "gehört zur Familie von Ludwig und bedeutet berühmt im Kampf und kommt aus dem Griechischen und bedeutet dunkel oder schwarz"
~ given_names_combination_note = "Die Verbindung stellt gehört zur Familie von Ludwig und bedeutet berühmt im Kampf und kommt aus dem Griechischen und bedeutet dunkel oder schwarz nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ludwika.]
~ common_name = "Ludwika"
* * [__Höre auf__: Ludka.]
~ common_name = "Ludka"
* * [__Höre auf__: Melania.]
~ common_name = "Melania"
* * [__Höre auf__: Mela.]
~ common_name = "Mela"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,191 @@
// Generated given-name package choices for Bürgertum / ungarisch
=== cg_given_names_middle_hungarian ===
* [__Heiße__: Mária Erzsébet.]
~ given_names = "Mária Erzsébet"
~ given_names_key = "maria_erzsebet"
~ given_names_meaning_fragment = "marianische Frömmigkeit und ungarische Katholizität und Gottesversprechen und ungarische Standesfarbe"
~ given_names_combination_note = "Die Verbindung stellt marianische Frömmigkeit und ungarische Katholizität und Gottesversprechen und ungarische Standesfarbe nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Mária.]
~ common_name = "Mária"
* * [__Höre auf__: Mari.]
~ common_name = "Mari"
* * [__Höre auf__: Erzsébet.]
~ common_name = "Erzsébet"
* * [__Höre auf__: Erzsi.]
~ common_name = "Erzsi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ilona Katalin.]
~ given_names = "Ilona Katalin"
~ given_names_key = "ilona_katalin"
~ given_names_meaning_fragment = "ungarischer Helenenklang und weiches Licht und Reinheit und stolzer Heiligenklang"
~ given_names_combination_note = "Die Verbindung stellt ungarischer Helenenklang und weiches Licht und Reinheit und stolzer Heiligenklang nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ilona.]
~ common_name = "Ilona"
* * [__Höre auf__: Ilonka.]
~ common_name = "Ilonka"
* * [__Höre auf__: Katalin.]
~ common_name = "Katalin"
* * [__Höre auf__: Kati.]
~ common_name = "Kati"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Margit Júlia.]
~ given_names = "Margit Júlia"
~ given_names_key = "margit_julia"
~ given_names_meaning_fragment = "Perle und schlichte Kostbarkeit und jugendlicher Glanz und römischer Klang"
~ given_names_combination_note = "Die Verbindung stellt Perle und schlichte Kostbarkeit und jugendlicher Glanz und römischer Klang nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Margit.]
~ common_name = "Margit"
* * [__Höre auf__: Margitka.]
~ common_name = "Margitka"
* * [__Höre auf__: Júlia.]
~ common_name = "Júlia"
* * [__Höre auf__: Juli.]
~ common_name = "Juli"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Róza Gizella.]
~ given_names = "Róza Gizella"
~ given_names_key = "roza_gizella"
~ given_names_meaning_fragment = "gehört zur Rose und trägt ihren klaren, blühenden Klang und kommt aus germanischem Namengut und bedeutet Geisel oder Bürgschaft"
~ given_names_combination_note = "Die Verbindung stellt gehört zur Rose und trägt ihren klaren, blühenden Klang und kommt aus germanischem Namengut und bedeutet Geisel oder Bürgschaft nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Róza.]
~ common_name = "Róza"
* * [__Höre auf__: Rózsi.]
~ common_name = "Rózsi"
* * [__Höre auf__: Gizella.]
~ common_name = "Gizella"
* * [__Höre auf__: Gizi.]
~ common_name = "Gizi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Sarolta Anna.]
~ given_names = "Sarolta Anna"
~ given_names_key = "sarolta_anna"
~ given_names_meaning_fragment = "hat eine überlieferte, aber nicht ganz sichere Herkunft und wirkt gerade dadurch wie ein Name mit Geschichte und Gnade und ruhige Beständigkeit"
~ given_names_combination_note = "Die Verbindung stellt hat eine überlieferte, aber nicht ganz sichere Herkunft und wirkt gerade dadurch wie ein Name mit Geschichte und Gnade und ruhige Beständigkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Sarolta.]
~ common_name = "Sarolta"
* * [__Höre auf__: Sári.]
~ common_name = "Sári"
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Anni.]
~ common_name = "Anni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Jolán Klára.]
~ given_names = "Jolán Klára"
~ given_names_key = "jolan_klara"
~ given_names_meaning_fragment = "wird später mit der Veilchenblüte verbunden und Helligkeit und klare Sichtbarkeit"
~ given_names_combination_note = "Die Verbindung stellt wird später mit der Veilchenblüte verbunden und Helligkeit und klare Sichtbarkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Jolán.]
~ common_name = "Jolán"
* * [__Höre auf__: Joli.]
~ common_name = "Joli"
* * [__Höre auf__: Klára.]
~ common_name = "Klára"
* * [__Höre auf__: Klári.]
~ common_name = "Klári"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ágnes Zsuzsanna.]
~ given_names = "Ágnes Zsuzsanna"
~ given_names_key = "agnes_zsuzsanna"
~ given_names_meaning_fragment = "Reinheit und stille Heiligenhärte und kommt von Susanna und bedeutet Lilie"
~ given_names_combination_note = "Die Verbindung stellt Reinheit und stille Heiligenhärte und kommt von Susanna und bedeutet Lilie nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ágnes.]
~ common_name = "Ágnes"
* * [__Höre auf__: Ági.]
~ common_name = "Ági"
* * [__Höre auf__: Zsuzsanna.]
~ common_name = "Zsuzsanna"
* * [__Höre auf__: Zsuzsa.]
~ common_name = "Zsuzsa"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Borbála Eszter.]
~ given_names = "Borbála Eszter"
~ given_names_key = "borbala_eszter"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und gehört zu Esther und trägt eine unsichere Bedeutung zwischen Stern und Myrte"
~ given_names_combination_note = "Die Verbindung stellt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und gehört zu Esther und trägt eine unsichere Bedeutung zwischen Stern und Myrte nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Borbála.]
~ common_name = "Borbála"
* * [__Höre auf__: Bori.]
~ common_name = "Bori"
* * [__Höre auf__: Eszter.]
~ common_name = "Eszter"
* * [__Höre auf__: Eszti.]
~ common_name = "Eszti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Etelka Aranka.]
~ given_names = "Etelka Aranka"
~ given_names_key = "etelka_aranka"
~ given_names_meaning_fragment = "hat eine überlieferte, aber nicht ganz sichere Herkunft und wirkt gerade dadurch wie ein Name mit Geschichte und kommt aus dem Ungarischen und bedeutet Gold"
~ given_names_combination_note = "Die Verbindung stellt hat eine überlieferte, aber nicht ganz sichere Herkunft und wirkt gerade dadurch wie ein Name mit Geschichte und kommt aus dem Ungarischen und bedeutet Gold nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Etelka.]
~ common_name = "Etelka"
* * [__Höre auf__: Etus.]
~ common_name = "Etus"
* * [__Höre auf__: Aranka.]
~ common_name = "Aranka"
* * [__Höre auf__: Ari.]
~ common_name = "Ari"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Amália Lujza.]
~ given_names = "Amália Lujza"
~ given_names_key = "amalia_lujza"
~ given_names_meaning_fragment = "ein historisch plausibler Klang von Amália und ein historisch plausibler Klang von Lujza"
~ given_names_combination_note = "Die Verbindung stellt ein historisch plausibler Klang von Amália und ein historisch plausibler Klang von Lujza nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Amália.]
~ common_name = "Amália"
* * [__Höre auf__: Málcsi.]
~ common_name = "Málcsi"
* * [__Höre auf__: Lujza.]
~ common_name = "Lujza"
* * [__Höre auf__: Lujzi.]
~ common_name = "Lujzi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,191 @@
// Generated given-name package choices for Bürgertum / südlich-adriatisch
=== cg_given_names_middle_southern ===
* [__Heiße__: Maria Teresa.]
~ given_names = "Maria Teresa"
~ given_names_key = "maria_teresa"
~ given_names_meaning_fragment = "marianische Frömmigkeit und alte Würde und sommerliche Wärme und südliche Katholizität"
~ given_names_combination_note = "Die Verbindung stellt marianische Frömmigkeit und alte Würde und sommerliche Wärme und südliche Katholizität nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mara.]
~ common_name = "Mara"
* * [__Höre auf__: Teresa.]
~ common_name = "Teresa"
* * [__Höre auf__: Teresina.]
~ common_name = "Teresina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Giulia Antonia.]
~ given_names = "Giulia Antonia"
~ given_names_key = "giulia_antonia"
~ given_names_meaning_fragment = "jugendlicher Glanz und adriatische Eleganz und römischer Familienklang und feste Haltung"
~ given_names_combination_note = "Die Verbindung stellt jugendlicher Glanz und adriatische Eleganz und römischer Familienklang und feste Haltung nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Giulia.]
~ common_name = "Giulia"
* * [__Höre auf__: Giulietta.]
~ common_name = "Giulietta"
* * [__Höre auf__: Antonia.]
~ common_name = "Antonia"
* * [__Höre auf__: Tonina.]
~ common_name = "Tonina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Giuseppina Bianca.]
~ given_names = "Giuseppina Bianca"
~ given_names_key = "giuseppina_bianca"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und Weißheit und südliche Helligkeit"
~ given_names_combination_note = "Die Verbindung stellt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und Weißheit und südliche Helligkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Giuseppina.]
~ common_name = "Giuseppina"
* * [__Höre auf__: Pina.]
~ common_name = "Pina"
* * [__Höre auf__: Bianca.]
~ common_name = "Bianca"
* * [__Höre auf__: Bia.]
~ common_name = "Bia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Emilia Carolina.]
~ given_names = "Emilia Carolina"
~ given_names_key = "emilia_carolina"
~ given_names_meaning_fragment = "auf Aemilius zurück und trägt den Sinn von Wetteifer oder Nacheifern und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Die Verbindung stellt auf Aemilius zurück und trägt den Sinn von Wetteifer oder Nacheifern und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Emilia.]
~ common_name = "Emilia"
* * [__Höre auf__: Emi.]
~ common_name = "Emi"
* * [__Höre auf__: Carolina.]
~ common_name = "Carolina"
* * [__Höre auf__: Lina.]
~ common_name = "Lina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Lucia Margherita.]
~ given_names = "Lucia Margherita"
~ given_names_key = "lucia_margherita"
~ given_names_meaning_fragment = "kommt von lux und bedeutet Licht und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Die Verbindung stellt kommt von lux und bedeutet Licht und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Lucia.]
~ common_name = "Lucia"
* * [__Höre auf__: Luci.]
~ common_name = "Luci"
* * [__Höre auf__: Margherita.]
~ common_name = "Margherita"
* * [__Höre auf__: Rita.]
~ common_name = "Rita"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Caterina Paolina.]
~ given_names = "Caterina Paolina"
~ given_names_key = "caterina_paolina"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Die Verbindung stellt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Caterina.]
~ common_name = "Caterina"
* * [__Höre auf__: Rina.]
~ common_name = "Rina"
* * [__Höre auf__: Paolina.]
~ common_name = "Paolina"
* * [__Höre auf__: Pina.]
~ common_name = "Pina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Marija Ana.]
~ given_names = "Marija Ana"
~ given_names_key = "marija_ana"
~ given_names_meaning_fragment = "marianische Frömmigkeit und südslawische Nähe und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Die Verbindung stellt marianische Frömmigkeit und südslawische Nähe und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Marija.]
~ common_name = "Marija"
* * [__Höre auf__: Mara.]
~ common_name = "Mara"
* * [__Höre auf__: Ana.]
~ common_name = "Ana"
* * [__Höre auf__: Anica.]
~ common_name = "Anica"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Jelena Katarina.]
~ given_names = "Jelena Katarina"
~ given_names_key = "jelena_katarina"
~ given_names_meaning_fragment = "Licht und südslawischer Helenenklang und Reinheit und stolzer Heiligenklang"
~ given_names_combination_note = "Die Verbindung stellt Licht und südslawischer Helenenklang und Reinheit und stolzer Heiligenklang nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Jelena.]
~ common_name = "Jelena"
* * [__Höre auf__: Jela.]
~ common_name = "Jela"
* * [__Höre auf__: Katarina.]
~ common_name = "Katarina"
* * [__Höre auf__: Kata.]
~ common_name = "Kata"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ivana Terezija.]
~ given_names = "Ivana Terezija"
~ given_names_key = "ivana_terezija"
~ given_names_meaning_fragment = "göttliche Gnade und südslawische Nüchternheit und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Die Verbindung stellt göttliche Gnade und südslawische Nüchternheit und eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ivana.]
~ common_name = "Ivana"
* * [__Höre auf__: Iva.]
~ common_name = "Iva"
* * [__Höre auf__: Terezija.]
~ common_name = "Terezija"
* * [__Höre auf__: Rezika.]
~ common_name = "Rezika"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Frančiška Albina.]
~ given_names = "Frančiška Albina"
~ given_names_key = "franciska_albina"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und kommt von albus und bedeutet weiß oder hell"
~ given_names_combination_note = "Die Verbindung stellt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und kommt von albus und bedeutet weiß oder hell nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Frančiška.]
~ common_name = "Frančiška"
* * [__Höre auf__: Francka.]
~ common_name = "Francka"
* * [__Höre auf__: Albina.]
~ common_name = "Albina"
* * [__Höre auf__: Bina.]
~ common_name = "Bina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,233 @@
// Generated given-name package choices for Adel / deutsch-österreichisch
=== cg_given_names_noble_austrian ===
* [__Heiße__: Valerie Eleonore Josepha.]
~ given_names = "Valerie Eleonore Josepha"
~ given_names_key = "valerie_eleonore_josepha"
~ given_names_meaning_fragment = "Stärke und Gesundheit, höfische Ruhe und rätselhafte Fremdheit und fromme Hoffnung auf Zuwachs"
~ given_names_combination_note = "Die Reihe stellt Stärke und Gesundheit, höfische Ruhe und rätselhafte Fremdheit und fromme Hoffnung auf Zuwachs nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Valerie.]
~ common_name = "Valerie"
* * [__Höre auf__: Vally.]
~ common_name = "Vally"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
* * [__Höre auf__: Lenchen.]
~ common_name = "Lenchen"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Helene Cäcilie Franziska.]
~ given_names = "Helene Cäcilie Franziska"
~ given_names_key = "helene_caecilie_franziska"
~ given_names_meaning_fragment = "Licht und sagenhafte Schönheit, Musik und verwundbare Würde und freie Bewegung in ordentlicher Form"
~ given_names_combination_note = "Die Reihe stellt Licht und sagenhafte Schönheit, Musik und verwundbare Würde und freie Bewegung in ordentlicher Form nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Helene.]
~ common_name = "Helene"
* * [__Höre auf__: Leni.]
~ common_name = "Leni"
* * [__Höre auf__: Cäcilie.]
~ common_name = "Cäcilie"
* * [__Höre auf__: Cilli.]
~ common_name = "Cilli"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Clara Theresia Leopoldine.]
~ given_names = "Clara Theresia Leopoldine"
~ given_names_key = "clara_theresia_leopoldine"
~ given_names_meaning_fragment = "Helligkeit und klare Sichtbarkeit, sommerliche Wärme und Ernteklang und Volksnähe und habsburgisches Rückgrat"
~ given_names_combination_note = "Die Reihe stellt Helligkeit und klare Sichtbarkeit, sommerliche Wärme und Ernteklang und Volksnähe und habsburgisches Rückgrat nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Clara.]
~ common_name = "Clara"
* * [__Höre auf__: Clari.]
~ common_name = "Clari"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Sophie Eleonore Auguste.]
~ given_names = "Sophie Eleonore Auguste"
~ given_names_key = "sophie_eleonore_auguste"
~ given_names_meaning_fragment = "Weisheit und stilles Maß, höfische Ruhe und rätselhafte Fremdheit und Erhabenheit und leiser Herrschaftston"
~ given_names_combination_note = "Die Reihe stellt Weisheit und stilles Maß, höfische Ruhe und rätselhafte Fremdheit und Erhabenheit und leiser Herrschaftston nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Sophie.]
~ common_name = "Sophie"
* * [__Höre auf__: Sopherl.]
~ common_name = "Sopherl"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
* * [__Höre auf__: Auguste.]
~ common_name = "Auguste"
* * [__Höre auf__: Gusti.]
~ common_name = "Gusti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Mathilde Josepha Henriette.]
~ given_names = "Mathilde Josepha Henriette"
~ given_names_key = "mathilde_josepha_henriette"
~ given_names_meaning_fragment = "Kampfkraft und fester Stand, fromme Hoffnung auf Zuwachs und Hausmacht und innere Ordnung"
~ given_names_combination_note = "Die Reihe stellt Kampfkraft und fester Stand, fromme Hoffnung auf Zuwachs und Hausmacht und innere Ordnung nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Mathilde.]
~ common_name = "Mathilde"
* * [__Höre auf__: Tilli.]
~ common_name = "Tilli"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
* * [__Höre auf__: Henriette.]
~ common_name = "Henriette"
* * [__Höre auf__: Jetti.]
~ common_name = "Jetti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Therese Valerie Franziska.]
~ given_names = "Therese Valerie Franziska"
~ given_names_key = "therese_valerie_franziska"
~ given_names_meaning_fragment = "sommerliche Wärme und Ernteklang, Stärke und Gesundheit und freie Bewegung in ordentlicher Form"
~ given_names_combination_note = "Die Reihe stellt sommerliche Wärme und Ernteklang, Stärke und Gesundheit und freie Bewegung in ordentlicher Form nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Therese.]
~ common_name = "Therese"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Valerie.]
~ common_name = "Valerie"
* * [__Höre auf__: Vally.]
~ common_name = "Vally"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Beatrix Maria Leopoldine.]
~ given_names = "Beatrix Maria Leopoldine"
~ given_names_key = "beatrix_maria_leopoldine"
~ given_names_meaning_fragment = "Reiseglück und Segen, marianische Frömmigkeit und alte Würde und Volksnähe und habsburgisches Rückgrat"
~ given_names_combination_note = "Die Reihe stellt Reiseglück und Segen, marianische Frömmigkeit und alte Würde und Volksnähe und habsburgisches Rückgrat nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Beatrix.]
~ common_name = "Beatrix"
* * [__Höre auf__: Bea.]
~ common_name = "Bea"
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Leopoldine Amalie Theresia.]
~ given_names = "Leopoldine Amalie Theresia"
~ given_names_key = "leopoldine_amalie_theresia"
~ given_names_meaning_fragment = "Volksnähe und habsburgisches Rückgrat, Arbeitseifer und sanfte Behaglichkeit und sommerliche Wärme und Ernteklang"
~ given_names_combination_note = "Die Reihe stellt Volksnähe und habsburgisches Rückgrat, Arbeitseifer und sanfte Behaglichkeit und sommerliche Wärme und Ernteklang nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
* * [__Höre auf__: Amalie.]
~ common_name = "Amalie"
* * [__Höre auf__: Mali.]
~ common_name = "Mali"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Adelheid Rosalia Josepha.]
~ given_names = "Adelheid Rosalia Josepha"
~ given_names_key = "adelheid_rosalia_josepha"
~ given_names_meaning_fragment = "alte Art und Vornehmheit, Rose und festliche Lieblichkeit und fromme Hoffnung auf Zuwachs"
~ given_names_combination_note = "Die Reihe stellt alte Art und Vornehmheit, Rose und festliche Lieblichkeit und fromme Hoffnung auf Zuwachs nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Adelheid.]
~ common_name = "Adelheid"
* * [__Höre auf__: Heidi.]
~ common_name = "Heidi"
* * [__Höre auf__: Rosalia.]
~ common_name = "Rosalia"
* * [__Höre auf__: Rosa.]
~ common_name = "Rosa"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Caroline Eugenie Mathilde.]
~ given_names = "Caroline Eugenie Mathilde"
~ given_names_key = "caroline_eugenie_mathilde"
~ given_names_meaning_fragment = "alte Freiheit und weltläufige Beweglichkeit, Wohlgeburt und elegante Selbstverständlichkeit und Kampfkraft und fester Stand"
~ given_names_combination_note = "Die Reihe stellt alte Freiheit und weltläufige Beweglichkeit, Wohlgeburt und elegante Selbstverständlichkeit und Kampfkraft und fester Stand nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Caroline.]
~ common_name = "Caroline"
* * [__Höre auf__: Lina.]
~ common_name = "Lina"
* * [__Höre auf__: Eugenie.]
~ common_name = "Eugenie"
* * [__Höre auf__: Genia.]
~ common_name = "Genia"
* * [__Höre auf__: Mathilde.]
~ common_name = "Mathilde"
* * [__Höre auf__: Tilli.]
~ common_name = "Tilli"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,231 @@
// Generated given-name package choices for Adel / böhmisch-mährisch
=== cg_given_names_noble_bohemian ===
* [__Heiße__: Eleonore Ludmilla Josepha.]
~ given_names = "Eleonore Ludmilla Josepha"
~ given_names_key = "eleonore_ludmilla_josepha"
~ given_names_meaning_fragment = "höfische Ruhe und rätselhafte Fremdheit, Volksliebe und slawische Wärme und fromme Hoffnung auf Zuwachs"
~ given_names_combination_note = "Die Reihe stellt höfische Ruhe und rätselhafte Fremdheit, Volksliebe und slawische Wärme und fromme Hoffnung auf Zuwachs nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
* * [__Höre auf__: Ludmilla.]
~ common_name = "Ludmilla"
* * [__Höre auf__: Mila.]
~ common_name = "Mila"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Clara Zdenka Franziska.]
~ given_names = "Clara Zdenka Franziska"
~ given_names_key = "clara_zdenka_franziska"
~ given_names_meaning_fragment = "Helligkeit und klare Sichtbarkeit, slawische Aufbaukraft und ein weniger wienerischer Ton und freie Bewegung in ordentlicher Form"
~ given_names_combination_note = "Die Reihe stellt Helligkeit und klare Sichtbarkeit, slawische Aufbaukraft und ein weniger wienerischer Ton und freie Bewegung in ordentlicher Form nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Clara.]
~ common_name = "Clara"
* * [__Höre auf__: Clari.]
~ common_name = "Clari"
* * [__Höre auf__: Zdenka.]
~ common_name = "Zdenka"
* * [__Höre auf__: Zdeni.]
~ common_name = "Zdeni"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Marie Antonie Cäcilie.]
~ given_names = "Marie Antonie Cäcilie"
~ given_names_key = "marie_antonie_caecilie"
~ given_names_meaning_fragment = "marianische Frömmigkeit und vertraute Weichheit, römischer Familienklang und feste Haltung und Musik und verwundbare Würde"
~ given_names_combination_note = "Die Reihe stellt marianische Frömmigkeit und vertraute Weichheit, römischer Familienklang und feste Haltung und Musik und verwundbare Würde nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Marie.]
~ common_name = "Marie"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Antonie.]
~ common_name = "Antonie"
* * [__Höre auf__: Toni.]
~ common_name = "Toni"
* * [__Höre auf__: Cäcilie.]
~ common_name = "Cäcilie"
* * [__Höre auf__: Cilli.]
~ common_name = "Cilli"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Theresia Božena Leopoldine.]
~ given_names = "Theresia Božena Leopoldine"
~ given_names_key = "theresia_bozena_leopoldine"
~ given_names_meaning_fragment = "sommerliche Wärme und Ernteklang, Gottesgabe und slawische Eigenart und Volksnähe und habsburgisches Rückgrat"
~ given_names_combination_note = "Die Reihe stellt sommerliche Wärme und Ernteklang, Gottesgabe und slawische Eigenart und Volksnähe und habsburgisches Rückgrat nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Božena.]
~ common_name = "Božena"
* * [__Höre auf__: Božka.]
~ common_name = "Božka"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Helene Eliška Auguste.]
~ given_names = "Helene Eliška Auguste"
~ given_names_key = "helene_eliska_auguste"
~ given_names_meaning_fragment = "Licht und sagenhafte Schönheit, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und Erhabenheit und leiser Herrschaftston"
~ given_names_combination_note = "Die Reihe stellt Licht und sagenhafte Schönheit, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und Erhabenheit und leiser Herrschaftston nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Helene.]
~ common_name = "Helene"
* * [__Höre auf__: Leni.]
~ common_name = "Leni"
* * [__Höre auf__: Eliška.]
~ common_name = "Eliška"
* * [__Höre auf__: Eli.]
~ common_name = "Eli"
* * [__Höre auf__: Auguste.]
~ common_name = "Auguste"
* * [__Höre auf__: Gusti.]
~ common_name = "Gusti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Sophie Kateřina Josepha.]
~ given_names = "Sophie Kateřina Josepha"
~ given_names_key = "sophie_katerina_josepha"
~ given_names_meaning_fragment = "Weisheit und stilles Maß, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und fromme Hoffnung auf Zuwachs"
~ given_names_combination_note = "Die Reihe stellt Weisheit und stilles Maß, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und fromme Hoffnung auf Zuwachs nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Sophie.]
~ common_name = "Sophie"
* * [__Höre auf__: Sopherl.]
~ common_name = "Sopherl"
* * [__Höre auf__: Kateřina.]
~ common_name = "Kateřina"
* * [__Höre auf__: Katka.]
~ common_name = "Katka"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Valerie Františka Eleonore.]
~ given_names = "Valerie Františka Eleonore"
~ given_names_key = "valerie_frantiska_eleonore"
~ given_names_meaning_fragment = "Stärke und Gesundheit, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und höfische Ruhe und rätselhafte Fremdheit"
~ given_names_combination_note = "Die Reihe stellt Stärke und Gesundheit, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und höfische Ruhe und rätselhafte Fremdheit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Valerie.]
~ common_name = "Valerie"
* * [__Höre auf__: Vally.]
~ common_name = "Vally"
* * [__Höre auf__: Františka.]
~ common_name = "Františka"
* * [__Höre auf__: Fanynka.]
~ common_name = "Fanynka"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Mathilde Růžena Henriette.]
~ given_names = "Mathilde Růžena Henriette"
~ given_names_key = "mathilde_ruzena_henriette"
~ given_names_meaning_fragment = "Kampfkraft und fester Stand, gehört zur Rose und trägt ihren blühenden Klang und Hausmacht und innere Ordnung"
~ given_names_combination_note = "Die Reihe stellt Kampfkraft und fester Stand, gehört zur Rose und trägt ihren blühenden Klang und Hausmacht und innere Ordnung nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Mathilde.]
~ common_name = "Mathilde"
* * [__Höre auf__: Tilli.]
~ common_name = "Tilli"
* * [__Höre auf__: Růžena.]
~ common_name = "Růžena"
* * [__Höre auf__: Růža.]
~ common_name = "Růža"
* * [__Höre auf__: Henriette.]
~ common_name = "Henriette"
* * [__Höre auf__: Jetti.]
~ common_name = "Jetti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Pauline Terezie Amalie.]
~ given_names = "Pauline Terezie Amalie"
~ given_names_key = "pauline_terezie_amalie"
~ given_names_meaning_fragment = "feine Beweglichkeit und Gelehrsamkeit, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und Arbeitseifer und sanfte Behaglichkeit"
~ given_names_combination_note = "Die Reihe stellt feine Beweglichkeit und Gelehrsamkeit, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und Arbeitseifer und sanfte Behaglichkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Pauline.]
~ common_name = "Pauline"
* * [__Höre auf__: Pauli.]
~ common_name = "Pauli"
* * [__Höre auf__: Terezie.]
~ common_name = "Terezie"
* * [__Höre auf__: Terezka.]
~ common_name = "Terezka"
* * [__Höre auf__: Amalie.]
~ common_name = "Amalie"
* * [__Höre auf__: Mali.]
~ common_name = "Mali"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Beatrix Johanna Albína.]
~ given_names = "Beatrix Johanna Albína"
~ given_names_key = "beatrix_johanna_albina"
~ given_names_meaning_fragment = "Reiseglück und Segen, göttliche Gnade und belastbare Frömmigkeit und kommt von albus und bedeutet weiß oder hell"
~ given_names_combination_note = "Die Reihe stellt Reiseglück und Segen, göttliche Gnade und belastbare Frömmigkeit und kommt von albus und bedeutet weiß oder hell nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Beatrix.]
~ common_name = "Beatrix"
* * [__Höre auf__: Bea.]
~ common_name = "Bea"
* * [__Höre auf__: Johanna.]
~ common_name = "Johanna"
* * [__Höre auf__: Hanni.]
~ common_name = "Hanni"
* * [__Höre auf__: Albína.]
~ common_name = "Albína"
* * [__Höre auf__: Bína.]
~ common_name = "Bína"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,231 @@
// Generated given-name package choices for Adel / galizisch-bukowinisch
=== cg_given_names_noble_eastern ===
* [__Heiße__: Maria Jadwiga Eleonore.]
~ given_names = "Maria Jadwiga Eleonore"
~ given_names_key = "maria_jadwiga_eleonore"
~ given_names_meaning_fragment = "marianische Frömmigkeit und alte Würde, Schutzkraft und alte polnische Würde und höfische Ruhe und rätselhafte Fremdheit"
~ given_names_combination_note = "Die Reihe stellt marianische Frömmigkeit und alte Würde, Schutzkraft und alte polnische Würde und höfische Ruhe und rätselhafte Fremdheit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Jadwiga.]
~ common_name = "Jadwiga"
* * [__Höre auf__: Jadzia.]
~ common_name = "Jadzia"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Zofia Josepha Leopoldine.]
~ given_names = "Zofia Josepha Leopoldine"
~ given_names_key = "zofia_josepha_leopoldine"
~ given_names_meaning_fragment = "Weisheit und polnische Bildung, fromme Hoffnung auf Zuwachs und Volksnähe und habsburgisches Rückgrat"
~ given_names_combination_note = "Die Reihe stellt Weisheit und polnische Bildung, fromme Hoffnung auf Zuwachs und Volksnähe und habsburgisches Rückgrat nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Zofia.]
~ common_name = "Zofia"
* * [__Höre auf__: Zosia.]
~ common_name = "Zosia"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Helena Antonina Franziska.]
~ given_names = "Helena Antonina Franziska"
~ given_names_key = "helena_antonina_franziska"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und freie Bewegung in ordentlicher Form"
~ given_names_combination_note = "Die Reihe stellt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und freie Bewegung in ordentlicher Form nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Helena.]
~ common_name = "Helena"
* * [__Höre auf__: Hela.]
~ common_name = "Hela"
* * [__Höre auf__: Antonina.]
~ common_name = "Antonina"
* * [__Höre auf__: Tosia.]
~ common_name = "Tosia"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Valerie Stanisława Theresia.]
~ given_names = "Valerie Stanisława Theresia"
~ given_names_key = "valerie_stanislawa_theresia"
~ given_names_meaning_fragment = "Stärke und Gesundheit, die weibliche Form von Stanisław und verbindet Werden mit Ruhm und sommerliche Wärme und Ernteklang"
~ given_names_combination_note = "Die Reihe stellt Stärke und Gesundheit, die weibliche Form von Stanisław und verbindet Werden mit Ruhm und sommerliche Wärme und Ernteklang nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Valerie.]
~ common_name = "Valerie"
* * [__Höre auf__: Vally.]
~ common_name = "Vally"
* * [__Höre auf__: Stanisława.]
~ common_name = "Stanisława"
* * [__Höre auf__: Stasia.]
~ common_name = "Stasia"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Sophie Kazimiera Auguste.]
~ given_names = "Sophie Kazimiera Auguste"
~ given_names_key = "sophie_kazimiera_auguste"
~ given_names_meaning_fragment = "Weisheit und stilles Maß, gehört zu Kasimir, dessen Bedeutung zwischen Frieden verkünden und Streit beenden unsicher bleibt und Erhabenheit und leiser Herrschaftston"
~ given_names_combination_note = "Die Reihe stellt Weisheit und stilles Maß, gehört zu Kasimir, dessen Bedeutung zwischen Frieden verkünden und Streit beenden unsicher bleibt und Erhabenheit und leiser Herrschaftston nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Sophie.]
~ common_name = "Sophie"
* * [__Höre auf__: Sopherl.]
~ common_name = "Sopherl"
* * [__Höre auf__: Kazimiera.]
~ common_name = "Kazimiera"
* * [__Höre auf__: Kazía.]
~ common_name = "Kazía"
* * [__Höre auf__: Auguste.]
~ common_name = "Auguste"
* * [__Höre auf__: Gusti.]
~ common_name = "Gusti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Mathilde Bronisława Josepha.]
~ given_names = "Mathilde Bronisława Josepha"
~ given_names_key = "mathilde_bronislawa_josepha"
~ given_names_meaning_fragment = "Kampfkraft und fester Stand, die weibliche Form von Bronisław und verbindet Schutz mit Ruhm und fromme Hoffnung auf Zuwachs"
~ given_names_combination_note = "Die Reihe stellt Kampfkraft und fester Stand, die weibliche Form von Bronisław und verbindet Schutz mit Ruhm und fromme Hoffnung auf Zuwachs nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Mathilde.]
~ common_name = "Mathilde"
* * [__Höre auf__: Tilli.]
~ common_name = "Tilli"
* * [__Höre auf__: Bronisława.]
~ common_name = "Bronisława"
* * [__Höre auf__: Bronia.]
~ common_name = "Bronia"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Cäcilie Marianna Eleonore.]
~ given_names = "Cäcilie Marianna Eleonore"
~ given_names_key = "caecilie_marianna_eleonore"
~ given_names_meaning_fragment = "Musik und verwundbare Würde, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und höfische Ruhe und rätselhafte Fremdheit"
~ given_names_combination_note = "Die Reihe stellt Musik und verwundbare Würde, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und höfische Ruhe und rätselhafte Fremdheit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Cäcilie.]
~ common_name = "Cäcilie"
* * [__Höre auf__: Cilli.]
~ common_name = "Cilli"
* * [__Höre auf__: Marianna.]
~ common_name = "Marianna"
* * [__Höre auf__: Marynia.]
~ common_name = "Marynia"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Adelheid Karolina Jadwiga.]
~ given_names = "Adelheid Karolina Jadwiga"
~ given_names_key = "adelheid_karolina_jadwiga"
~ given_names_meaning_fragment = "alte Art und Vornehmheit, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und Schutzkraft und alte polnische Würde"
~ given_names_combination_note = "Die Reihe stellt alte Art und Vornehmheit, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und Schutzkraft und alte polnische Würde nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Adelheid.]
~ common_name = "Adelheid"
* * [__Höre auf__: Heidi.]
~ common_name = "Heidi"
* * [__Höre auf__: Karolina.]
~ common_name = "Karolina"
* * [__Höre auf__: Lina.]
~ common_name = "Lina"
* * [__Höre auf__: Jadwiga.]
~ common_name = "Jadwiga"
* * [__Höre auf__: Jadzia.]
~ common_name = "Jadzia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Pauline Leokadia Amalie.]
~ given_names = "Pauline Leokadia Amalie"
~ given_names_key = "pauline_leokadia_amalie"
~ given_names_meaning_fragment = "feine Beweglichkeit und Gelehrsamkeit, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und Arbeitseifer und sanfte Behaglichkeit"
~ given_names_combination_note = "Die Reihe stellt feine Beweglichkeit und Gelehrsamkeit, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und Arbeitseifer und sanfte Behaglichkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Pauline.]
~ common_name = "Pauline"
* * [__Höre auf__: Pauli.]
~ common_name = "Pauli"
* * [__Höre auf__: Leokadia.]
~ common_name = "Leokadia"
* * [__Höre auf__: Lodzia.]
~ common_name = "Lodzia"
* * [__Höre auf__: Amalie.]
~ common_name = "Amalie"
* * [__Höre auf__: Mali.]
~ common_name = "Mali"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Beatrix Józefa Henriette.]
~ given_names = "Beatrix Józefa Henriette"
~ given_names_key = "beatrix_jozefa_henriette"
~ given_names_meaning_fragment = "Reiseglück und Segen, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und Hausmacht und innere Ordnung"
~ given_names_combination_note = "Die Reihe stellt Reiseglück und Segen, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und Hausmacht und innere Ordnung nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Beatrix.]
~ common_name = "Beatrix"
* * [__Höre auf__: Bea.]
~ common_name = "Bea"
* * [__Höre auf__: Józefa.]
~ common_name = "Józefa"
* * [__Höre auf__: Józia.]
~ common_name = "Józia"
* * [__Höre auf__: Henriette.]
~ common_name = "Henriette"
* * [__Höre auf__: Jetti.]
~ common_name = "Jetti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,231 @@
// Generated given-name package choices for Adel / ungarisch
=== cg_given_names_noble_hungarian ===
* [__Heiße__: Ilona Theresia Eleonore.]
~ given_names = "Ilona Theresia Eleonore"
~ given_names_key = "ilona_theresia_eleonore"
~ given_names_meaning_fragment = "ungarischer Helenenklang und weiches Licht, sommerliche Wärme und Ernteklang und höfische Ruhe und rätselhafte Fremdheit"
~ given_names_combination_note = "Die Reihe stellt ungarischer Helenenklang und weiches Licht, sommerliche Wärme und Ernteklang und höfische Ruhe und rätselhafte Fremdheit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ilona.]
~ common_name = "Ilona"
* * [__Höre auf__: Ilonka.]
~ common_name = "Ilonka"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Erzsébet Maria Josepha.]
~ given_names = "Erzsébet Maria Josepha"
~ given_names_key = "erzsebet_maria_josepha"
~ given_names_meaning_fragment = "Gottesversprechen und ungarische Standesfarbe, marianische Frömmigkeit und alte Würde und fromme Hoffnung auf Zuwachs"
~ given_names_combination_note = "Die Reihe stellt Gottesversprechen und ungarische Standesfarbe, marianische Frömmigkeit und alte Würde und fromme Hoffnung auf Zuwachs nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Erzsébet.]
~ common_name = "Erzsébet"
* * [__Höre auf__: Erzsi.]
~ common_name = "Erzsi"
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Margit Leopoldine Amalie.]
~ given_names = "Margit Leopoldine Amalie"
~ given_names_key = "margit_leopoldine_amalie"
~ given_names_meaning_fragment = "Perle und schlichte Kostbarkeit, Volksnähe und habsburgisches Rückgrat und Arbeitseifer und sanfte Behaglichkeit"
~ given_names_combination_note = "Die Reihe stellt Perle und schlichte Kostbarkeit, Volksnähe und habsburgisches Rückgrat und Arbeitseifer und sanfte Behaglichkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Margit.]
~ common_name = "Margit"
* * [__Höre auf__: Margitka.]
~ common_name = "Margitka"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
* * [__Höre auf__: Amalie.]
~ common_name = "Amalie"
* * [__Höre auf__: Mali.]
~ common_name = "Mali"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Sarolta Eleonore Franziska.]
~ given_names = "Sarolta Eleonore Franziska"
~ given_names_key = "sarolta_eleonore_franziska"
~ given_names_meaning_fragment = "hat eine überlieferte, aber nicht ganz sichere Herkunft und wirkt gerade dadurch wie ein Name mit Geschichte, höfische Ruhe und rätselhafte Fremdheit und freie Bewegung in ordentlicher Form"
~ given_names_combination_note = "Die Reihe stellt hat eine überlieferte, aber nicht ganz sichere Herkunft und wirkt gerade dadurch wie ein Name mit Geschichte, höfische Ruhe und rätselhafte Fremdheit und freie Bewegung in ordentlicher Form nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Sarolta.]
~ common_name = "Sarolta"
* * [__Höre auf__: Sári.]
~ common_name = "Sári"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Klára Mária Auguste.]
~ given_names = "Klára Mária Auguste"
~ given_names_key = "klara_maria_auguste"
~ given_names_meaning_fragment = "Helligkeit und klare Sichtbarkeit, marianische Frömmigkeit und ungarische Katholizität und Erhabenheit und leiser Herrschaftston"
~ given_names_combination_note = "Die Reihe stellt Helligkeit und klare Sichtbarkeit, marianische Frömmigkeit und ungarische Katholizität und Erhabenheit und leiser Herrschaftston nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Klára.]
~ common_name = "Klára"
* * [__Höre auf__: Klári.]
~ common_name = "Klári"
* * [__Höre auf__: Mária.]
~ common_name = "Mária"
* * [__Höre auf__: Mari.]
~ common_name = "Mari"
* * [__Höre auf__: Auguste.]
~ common_name = "Auguste"
* * [__Höre auf__: Gusti.]
~ common_name = "Gusti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Júlia Theresia Henriette.]
~ given_names = "Júlia Theresia Henriette"
~ given_names_key = "julia_theresia_henriette"
~ given_names_meaning_fragment = "jugendlicher Glanz und römischer Klang, sommerliche Wärme und Ernteklang und Hausmacht und innere Ordnung"
~ given_names_combination_note = "Die Reihe stellt jugendlicher Glanz und römischer Klang, sommerliche Wärme und Ernteklang und Hausmacht und innere Ordnung nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Júlia.]
~ common_name = "Júlia"
* * [__Höre auf__: Juli.]
~ common_name = "Juli"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Henriette.]
~ common_name = "Henriette"
* * [__Höre auf__: Jetti.]
~ common_name = "Jetti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Róza Elisabeth Leopoldine.]
~ given_names = "Róza Elisabeth Leopoldine"
~ given_names_key = "roza_elisabeth_leopoldine"
~ given_names_meaning_fragment = "gehört zur Rose und trägt ihren klaren, blühenden Klang, Gottesversprechen und königliche Erinnerung und Volksnähe und habsburgisches Rückgrat"
~ given_names_combination_note = "Die Reihe stellt gehört zur Rose und trägt ihren klaren, blühenden Klang, Gottesversprechen und königliche Erinnerung und Volksnähe und habsburgisches Rückgrat nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Róza.]
~ common_name = "Róza"
* * [__Höre auf__: Rózsi.]
~ common_name = "Rózsi"
* * [__Höre auf__: Elisabeth.]
~ common_name = "Elisabeth"
* * [__Höre auf__: Liesl.]
~ common_name = "Liesl"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Gizella Sophie Josepha.]
~ given_names = "Gizella Sophie Josepha"
~ given_names_key = "gizella_sophie_josepha"
~ given_names_meaning_fragment = "kommt aus germanischem Namengut und bedeutet Geisel oder Bürgschaft, Weisheit und stilles Maß und fromme Hoffnung auf Zuwachs"
~ given_names_combination_note = "Die Reihe stellt kommt aus germanischem Namengut und bedeutet Geisel oder Bürgschaft, Weisheit und stilles Maß und fromme Hoffnung auf Zuwachs nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Gizella.]
~ common_name = "Gizella"
* * [__Höre auf__: Gizi.]
~ common_name = "Gizi"
* * [__Höre auf__: Sophie.]
~ common_name = "Sophie"
* * [__Höre auf__: Sopherl.]
~ common_name = "Sopherl"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Etelka Valerie Eleonore.]
~ given_names = "Etelka Valerie Eleonore"
~ given_names_key = "etelka_valerie_eleonore"
~ given_names_meaning_fragment = "hat eine überlieferte, aber nicht ganz sichere Herkunft und wirkt gerade dadurch wie ein Name mit Geschichte, Stärke und Gesundheit und höfische Ruhe und rätselhafte Fremdheit"
~ given_names_combination_note = "Die Reihe stellt hat eine überlieferte, aber nicht ganz sichere Herkunft und wirkt gerade dadurch wie ein Name mit Geschichte, Stärke und Gesundheit und höfische Ruhe und rätselhafte Fremdheit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Etelka.]
~ common_name = "Etelka"
* * [__Höre auf__: Etus.]
~ common_name = "Etus"
* * [__Höre auf__: Valerie.]
~ common_name = "Valerie"
* * [__Höre auf__: Vally.]
~ common_name = "Vally"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Aranka Theresia Franziska.]
~ given_names = "Aranka Theresia Franziska"
~ given_names_key = "aranka_theresia_franziska"
~ given_names_meaning_fragment = "kommt aus dem Ungarischen und bedeutet Gold, sommerliche Wärme und Ernteklang und freie Bewegung in ordentlicher Form"
~ given_names_combination_note = "Die Reihe stellt kommt aus dem Ungarischen und bedeutet Gold, sommerliche Wärme und Ernteklang und freie Bewegung in ordentlicher Form nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Aranka.]
~ common_name = "Aranka"
* * [__Höre auf__: Ari.]
~ common_name = "Ari"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,231 @@
// Generated given-name package choices for Adel / südlich-adriatisch
=== cg_given_names_noble_southern ===
* [__Heiße__: Giulia Maria Eleonore.]
~ given_names = "Giulia Maria Eleonore"
~ given_names_key = "giulia_maria_eleonore"
~ given_names_meaning_fragment = "jugendlicher Glanz und adriatische Eleganz, marianische Frömmigkeit und alte Würde und höfische Ruhe und rätselhafte Fremdheit"
~ given_names_combination_note = "Die Reihe stellt jugendlicher Glanz und adriatische Eleganz, marianische Frömmigkeit und alte Würde und höfische Ruhe und rätselhafte Fremdheit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Giulia.]
~ common_name = "Giulia"
* * [__Höre auf__: Giulietta.]
~ common_name = "Giulietta"
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Bianca Theresia Leopoldine.]
~ given_names = "Bianca Theresia Leopoldine"
~ given_names_key = "bianca_theresia_leopoldine"
~ given_names_meaning_fragment = "Weißheit und südliche Helligkeit, sommerliche Wärme und Ernteklang und Volksnähe und habsburgisches Rückgrat"
~ given_names_combination_note = "Die Reihe stellt Weißheit und südliche Helligkeit, sommerliche Wärme und Ernteklang und Volksnähe und habsburgisches Rückgrat nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Bianca.]
~ common_name = "Bianca"
* * [__Höre auf__: Bia.]
~ common_name = "Bia"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Emilia Josepha Franziska.]
~ given_names = "Emilia Josepha Franziska"
~ given_names_key = "emilia_josepha_franziska"
~ given_names_meaning_fragment = "auf Aemilius zurück und trägt den Sinn von Wetteifer oder Nacheifern, fromme Hoffnung auf Zuwachs und freie Bewegung in ordentlicher Form"
~ given_names_combination_note = "Die Reihe stellt auf Aemilius zurück und trägt den Sinn von Wetteifer oder Nacheifern, fromme Hoffnung auf Zuwachs und freie Bewegung in ordentlicher Form nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Emilia.]
~ common_name = "Emilia"
* * [__Höre auf__: Emi.]
~ common_name = "Emi"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Carolina Giuseppina Auguste.]
~ given_names = "Carolina Giuseppina Auguste"
~ given_names_key = "carolina_giuseppina_auguste"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und Erhabenheit und leiser Herrschaftston"
~ given_names_combination_note = "Die Reihe stellt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter, eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter und Erhabenheit und leiser Herrschaftston nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Carolina.]
~ common_name = "Carolina"
* * [__Höre auf__: Lina.]
~ common_name = "Lina"
* * [__Höre auf__: Giuseppina.]
~ common_name = "Giuseppina"
* * [__Höre auf__: Pina.]
~ common_name = "Pina"
* * [__Höre auf__: Auguste.]
~ common_name = "Auguste"
* * [__Höre auf__: Gusti.]
~ common_name = "Gusti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Margherita Eleonore Amalie.]
~ given_names = "Margherita Eleonore Amalie"
~ given_names_key = "margherita_eleonore_amalie"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter, höfische Ruhe und rätselhafte Fremdheit und Arbeitseifer und sanfte Behaglichkeit"
~ given_names_combination_note = "Die Reihe stellt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter, höfische Ruhe und rätselhafte Fremdheit und Arbeitseifer und sanfte Behaglichkeit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Margherita.]
~ common_name = "Margherita"
* * [__Höre auf__: Rita.]
~ common_name = "Rita"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
* * [__Höre auf__: Amalie.]
~ common_name = "Amalie"
* * [__Höre auf__: Mali.]
~ common_name = "Mali"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Lucia Theresia Henriette.]
~ given_names = "Lucia Theresia Henriette"
~ given_names_key = "lucia_theresia_henriette"
~ given_names_meaning_fragment = "kommt von lux und bedeutet Licht, sommerliche Wärme und Ernteklang und Hausmacht und innere Ordnung"
~ given_names_combination_note = "Die Reihe stellt kommt von lux und bedeutet Licht, sommerliche Wärme und Ernteklang und Hausmacht und innere Ordnung nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Lucia.]
~ common_name = "Lucia"
* * [__Höre auf__: Luci.]
~ common_name = "Luci"
* * [__Höre auf__: Theresia.]
~ common_name = "Theresia"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Henriette.]
~ common_name = "Henriette"
* * [__Höre auf__: Jetti.]
~ common_name = "Jetti"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Jelena Maria Leopoldine.]
~ given_names = "Jelena Maria Leopoldine"
~ given_names_key = "jelena_maria_leopoldine"
~ given_names_meaning_fragment = "Licht und südslawischer Helenenklang, marianische Frömmigkeit und alte Würde und Volksnähe und habsburgisches Rückgrat"
~ given_names_combination_note = "Die Reihe stellt Licht und südslawischer Helenenklang, marianische Frömmigkeit und alte Würde und Volksnähe und habsburgisches Rückgrat nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Jelena.]
~ common_name = "Jelena"
* * [__Höre auf__: Jela.]
~ common_name = "Jela"
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Leopoldine.]
~ common_name = "Leopoldine"
* * [__Höre auf__: Poldi.]
~ common_name = "Poldi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Katarina Valerie Franziska.]
~ given_names = "Katarina Valerie Franziska"
~ given_names_key = "katarina_valerie_franziska"
~ given_names_meaning_fragment = "Reinheit und stolzer Heiligenklang, Stärke und Gesundheit und freie Bewegung in ordentlicher Form"
~ given_names_combination_note = "Die Reihe stellt Reinheit und stolzer Heiligenklang, Stärke und Gesundheit und freie Bewegung in ordentlicher Form nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Katarina.]
~ common_name = "Katarina"
* * [__Höre auf__: Kata.]
~ common_name = "Kata"
* * [__Höre auf__: Valerie.]
~ common_name = "Valerie"
* * [__Höre auf__: Vally.]
~ common_name = "Vally"
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ivana Cäcilie Josepha.]
~ given_names = "Ivana Cäcilie Josepha"
~ given_names_key = "ivana_caecilie_josepha"
~ given_names_meaning_fragment = "göttliche Gnade und südslawische Nüchternheit, Musik und verwundbare Würde und fromme Hoffnung auf Zuwachs"
~ given_names_combination_note = "Die Reihe stellt göttliche Gnade und südslawische Nüchternheit, Musik und verwundbare Würde und fromme Hoffnung auf Zuwachs nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ivana.]
~ common_name = "Ivana"
* * [__Höre auf__: Iva.]
~ common_name = "Iva"
* * [__Höre auf__: Cäcilie.]
~ common_name = "Cäcilie"
* * [__Höre auf__: Cilli.]
~ common_name = "Cilli"
* * [__Höre auf__: Josepha.]
~ common_name = "Josepha"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Štefanija Sophie Eleonore.]
~ given_names = "Štefanija Sophie Eleonore"
~ given_names_key = "tefanija_sophie_eleonore"
~ given_names_meaning_fragment = "die weibliche Form von Stephan und bedeutet Kranz oder Krone, Weisheit und stilles Maß und höfische Ruhe und rätselhafte Fremdheit"
~ given_names_combination_note = "Die Reihe stellt die weibliche Form von Stephan und bedeutet Kranz oder Krone, Weisheit und stilles Maß und höfische Ruhe und rätselhafte Fremdheit nebeneinander."
-> cg_after_given_names_written ->
* * [__Höre auf__: Štefanija.]
~ common_name = "Štefanija"
* * [__Höre auf__: Štefka.]
~ common_name = "Štefka"
* * [__Höre auf__: Sophie.]
~ common_name = "Sophie"
* * [__Höre auf__: Sopherl.]
~ common_name = "Sopherl"
* * [__Höre auf__: Eleonore.]
~ common_name = "Eleonore"
* * [__Höre auf__: Nora.]
~ common_name = "Nora"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,169 @@
// Generated given-name package choices for Arbeiterherkunft / deutsch-österreichisch
=== cg_given_names_working_austrian ===
* [__Heiße__: Maria.]
~ given_names = "Maria"
~ given_names_key = "maria"
~ given_names_meaning_fragment = "marianische Frömmigkeit und alte Würde"
~ given_names_combination_note = "Der Name trägt marianische Frömmigkeit und alte Würde."
-> cg_after_given_names_written ->
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
* * [__Höre auf__: Mirl.]
~ common_name = "Mirl"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Anna.]
~ given_names = "Anna"
~ given_names_key = "anna"
~ given_names_meaning_fragment = "Gnade und ruhige Beständigkeit"
~ given_names_combination_note = "Der Name trägt Gnade und ruhige Beständigkeit."
-> cg_after_given_names_written ->
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Anni.]
~ common_name = "Anni"
* * [__Höre auf__: Nannerl.]
~ common_name = "Nannerl"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Josefa.]
~ given_names = "Josefa"
~ given_names_key = "josefa"
~ given_names_meaning_fragment = "fromme Hoffnung auf Zuwachs"
~ given_names_combination_note = "Der Name trägt fromme Hoffnung auf Zuwachs."
-> cg_after_given_names_written ->
* * [__Höre auf__: Josefa.]
~ common_name = "Josefa"
* * [__Höre auf__: Pepi.]
~ common_name = "Pepi"
* * [__Höre auf__: Sefa.]
~ common_name = "Sefa"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Therese.]
~ given_names = "Therese"
~ given_names_key = "therese"
~ given_names_meaning_fragment = "sommerliche Wärme und Ernteklang"
~ given_names_combination_note = "Der Name trägt sommerliche Wärme und Ernteklang."
-> cg_after_given_names_written ->
* * [__Höre auf__: Therese.]
~ common_name = "Therese"
* * [__Höre auf__: Resi.]
~ common_name = "Resi"
* * [__Höre auf__: Reserl.]
~ common_name = "Reserl"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Franziska.]
~ given_names = "Franziska"
~ given_names_key = "franziska"
~ given_names_meaning_fragment = "freie Bewegung in ordentlicher Form"
~ given_names_combination_note = "Der Name trägt freie Bewegung in ordentlicher Form."
-> cg_after_given_names_written ->
* * [__Höre auf__: Franziska.]
~ common_name = "Franziska"
* * [__Höre auf__: Fanni.]
~ common_name = "Fanni"
* * [__Höre auf__: Franzi.]
~ common_name = "Franzi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Katharina.]
~ given_names = "Katharina"
~ given_names_key = "katharina"
~ given_names_meaning_fragment = "Reinheit und stolzer Heiligenklang"
~ given_names_combination_note = "Der Name trägt Reinheit und stolzer Heiligenklang."
-> cg_after_given_names_written ->
* * [__Höre auf__: Katharina.]
~ common_name = "Katharina"
* * [__Höre auf__: Kathi.]
~ common_name = "Kathi"
* * [__Höre auf__: Käthe.]
~ common_name = "Käthe"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Barbara.]
~ given_names = "Barbara"
~ given_names_key = "barbara"
~ given_names_meaning_fragment = "kommt von barbaros und bedeutet die Fremde"
~ given_names_combination_note = "Der Name trägt kommt von barbaros und bedeutet die Fremde."
-> cg_after_given_names_written ->
* * [__Höre auf__: Barbara.]
~ common_name = "Barbara"
* * [__Höre auf__: Barbl.]
~ common_name = "Barbl"
* * [__Höre auf__: Babsi.]
~ common_name = "Babsi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Magdalena.]
~ given_names = "Magdalena"
~ given_names_key = "magdalena"
~ given_names_meaning_fragment = "biblische Tiefe und Nähe zur Buße"
~ given_names_combination_note = "Der Name trägt biblische Tiefe und Nähe zur Buße."
-> cg_after_given_names_written ->
* * [__Höre auf__: Magdalena.]
~ common_name = "Magdalena"
* * [__Höre auf__: Leni.]
~ common_name = "Leni"
* * [__Höre auf__: Magda.]
~ common_name = "Magda"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Rosa.]
~ given_names = "Rosa"
~ given_names_key = "rosa"
~ given_names_meaning_fragment = "Rose und offene Lieblichkeit"
~ given_names_combination_note = "Der Name trägt Rose und offene Lieblichkeit."
-> cg_after_given_names_written ->
* * [__Höre auf__: Rosa.]
~ common_name = "Rosa"
* * [__Höre auf__: Rosi.]
~ common_name = "Rosi"
* * [__Höre auf__: Roserl.]
~ common_name = "Roserl"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Agnes.]
~ given_names = "Agnes"
~ given_names_key = "agnes"
~ given_names_meaning_fragment = "Reinheit und stille Heiligenhärte"
~ given_names_combination_note = "Der Name trägt Reinheit und stille Heiligenhärte."
-> cg_after_given_names_written ->
* * [__Höre auf__: Agnes.]
~ common_name = "Agnes"
* * [__Höre auf__: Agi.]
~ common_name = "Agi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,171 @@
// Generated given-name package choices for Arbeiterherkunft / böhmisch-mährisch
=== cg_given_names_working_bohemian ===
* [__Heiße__: Marie.]
~ given_names = "Marie"
~ given_names_key = "marie"
~ given_names_meaning_fragment = "marianische Frömmigkeit und vertraute Weichheit"
~ given_names_combination_note = "Der Name trägt marianische Frömmigkeit und vertraute Weichheit."
-> cg_after_given_names_written ->
* * [__Höre auf__: Marie.]
~ common_name = "Marie"
* * [__Höre auf__: Maruška.]
~ common_name = "Maruška"
* * [__Höre auf__: Mitzi.]
~ common_name = "Mitzi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Anna.]
~ given_names = "Anna"
~ given_names_key = "anna"
~ given_names_meaning_fragment = "Gnade und ruhige Beständigkeit"
~ given_names_combination_note = "Der Name trägt Gnade und ruhige Beständigkeit."
-> cg_after_given_names_written ->
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Anka.]
~ common_name = "Anka"
* * [__Höre auf__: Anička.]
~ common_name = "Anička"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Josefa.]
~ given_names = "Josefa"
~ given_names_key = "josefa"
~ given_names_meaning_fragment = "fromme Hoffnung auf Zuwachs"
~ given_names_combination_note = "Der Name trägt fromme Hoffnung auf Zuwachs."
-> cg_after_given_names_written ->
* * [__Höre auf__: Josefa.]
~ common_name = "Josefa"
* * [__Höre auf__: Pepička.]
~ common_name = "Pepička"
* * [__Höre auf__: Pepina.]
~ common_name = "Pepina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Františka.]
~ given_names = "Františka"
~ given_names_key = "frantiska"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Der Name trägt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter."
-> cg_after_given_names_written ->
* * [__Höre auf__: Františka.]
~ common_name = "Františka"
* * [__Höre auf__: Fanynka.]
~ common_name = "Fanynka"
* * [__Höre auf__: Fanka.]
~ common_name = "Fanka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Kateřina.]
~ given_names = "Kateřina"
~ given_names_key = "katerina"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Der Name trägt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter."
-> cg_after_given_names_written ->
* * [__Höre auf__: Kateřina.]
~ common_name = "Kateřina"
* * [__Höre auf__: Katka.]
~ common_name = "Katka"
* * [__Höre auf__: Kačenka.]
~ common_name = "Kačenka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Antonie.]
~ given_names = "Antonie"
~ given_names_key = "antonie"
~ given_names_meaning_fragment = "römischer Familienklang und feste Haltung"
~ given_names_combination_note = "Der Name trägt römischer Familienklang und feste Haltung."
-> cg_after_given_names_written ->
* * [__Höre auf__: Antonie.]
~ common_name = "Antonie"
* * [__Höre auf__: Tonka.]
~ common_name = "Tonka"
* * [__Höre auf__: Tonička.]
~ common_name = "Tonička"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Terezie.]
~ given_names = "Terezie"
~ given_names_key = "terezie"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Der Name trägt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter."
-> cg_after_given_names_written ->
* * [__Höre auf__: Terezie.]
~ common_name = "Terezie"
* * [__Höre auf__: Terezka.]
~ common_name = "Terezka"
* * [__Höre auf__: Terka.]
~ common_name = "Terka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Barbora.]
~ given_names = "Barbora"
~ given_names_key = "barbora"
~ given_names_meaning_fragment = "ein historisch plausibler Klang von Barbora"
~ given_names_combination_note = "Der Name trägt ein historisch plausibler Klang von Barbora."
-> cg_after_given_names_written ->
* * [__Höre auf__: Barbora.]
~ common_name = "Barbora"
* * [__Höre auf__: Barča.]
~ common_name = "Barča"
* * [__Höre auf__: Bára.]
~ common_name = "Bára"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Růžena.]
~ given_names = "Růžena"
~ given_names_key = "ruzena"
~ given_names_meaning_fragment = "gehört zur Rose und trägt ihren blühenden Klang"
~ given_names_combination_note = "Der Name trägt gehört zur Rose und trägt ihren blühenden Klang."
-> cg_after_given_names_written ->
* * [__Höre auf__: Růžena.]
~ common_name = "Růžena"
* * [__Höre auf__: Růža.]
~ common_name = "Růža"
* * [__Höre auf__: Růženka.]
~ common_name = "Růženka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Božena.]
~ given_names = "Božena"
~ given_names_key = "bozena"
~ given_names_meaning_fragment = "Gottesgabe und slawische Eigenart"
~ given_names_combination_note = "Der Name trägt Gottesgabe und slawische Eigenart."
-> cg_after_given_names_written ->
* * [__Höre auf__: Božena.]
~ common_name = "Božena"
* * [__Höre auf__: Božka.]
~ common_name = "Božka"
* * [__Höre auf__: Ženka.]
~ common_name = "Ženka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,171 @@
// Generated given-name package choices for Arbeiterherkunft / galizisch-bukowinisch
=== cg_given_names_working_eastern ===
* [__Heiße__: Maria.]
~ given_names = "Maria"
~ given_names_key = "maria"
~ given_names_meaning_fragment = "marianische Frömmigkeit und alte Würde"
~ given_names_combination_note = "Der Name trägt marianische Frömmigkeit und alte Würde."
-> cg_after_given_names_written ->
* * [__Höre auf__: Maria.]
~ common_name = "Maria"
* * [__Höre auf__: Marynia.]
~ common_name = "Marynia"
* * [__Höre auf__: Mania.]
~ common_name = "Mania"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Anna.]
~ given_names = "Anna"
~ given_names_key = "anna"
~ given_names_meaning_fragment = "Gnade und ruhige Beständigkeit"
~ given_names_combination_note = "Der Name trägt Gnade und ruhige Beständigkeit."
-> cg_after_given_names_written ->
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Ania.]
~ common_name = "Ania"
* * [__Höre auf__: Anusia.]
~ common_name = "Anusia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Katarzyna.]
~ given_names = "Katarzyna"
~ given_names_key = "katarzyna"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Der Name trägt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter."
-> cg_after_given_names_written ->
* * [__Höre auf__: Katarzyna.]
~ common_name = "Katarzyna"
* * [__Höre auf__: Kasia.]
~ common_name = "Kasia"
* * [__Höre auf__: Kaśka.]
~ common_name = "Kaśka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Zofia.]
~ given_names = "Zofia"
~ given_names_key = "zofia"
~ given_names_meaning_fragment = "Weisheit und polnische Bildung"
~ given_names_combination_note = "Der Name trägt Weisheit und polnische Bildung."
-> cg_after_given_names_written ->
* * [__Höre auf__: Zofia.]
~ common_name = "Zofia"
* * [__Höre auf__: Zosia.]
~ common_name = "Zosia"
* * [__Höre auf__: Zocha.]
~ common_name = "Zocha"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Jadwiga.]
~ given_names = "Jadwiga"
~ given_names_key = "jadwiga"
~ given_names_meaning_fragment = "Schutzkraft und alte polnische Würde"
~ given_names_combination_note = "Der Name trägt Schutzkraft und alte polnische Würde."
-> cg_after_given_names_written ->
* * [__Höre auf__: Jadwiga.]
~ common_name = "Jadwiga"
* * [__Höre auf__: Jadzia.]
~ common_name = "Jadzia"
* * [__Höre auf__: Jadziunia.]
~ common_name = "Jadziunia"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Agnieszka.]
~ given_names = "Agnieszka"
~ given_names_key = "agnieszka"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Der Name trägt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter."
-> cg_after_given_names_written ->
* * [__Höre auf__: Agnieszka.]
~ common_name = "Agnieszka"
* * [__Höre auf__: Aga.]
~ common_name = "Aga"
* * [__Höre auf__: Jagna.]
~ common_name = "Jagna"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Józefa.]
~ given_names = "Józefa"
~ given_names_key = "jozefa"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Der Name trägt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter."
-> cg_after_given_names_written ->
* * [__Höre auf__: Józefa.]
~ common_name = "Józefa"
* * [__Höre auf__: Józia.]
~ common_name = "Józia"
* * [__Höre auf__: Ziuta.]
~ common_name = "Ziuta"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Antonina.]
~ given_names = "Antonina"
~ given_names_key = "antonina"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Der Name trägt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter."
-> cg_after_given_names_written ->
* * [__Höre auf__: Antonina.]
~ common_name = "Antonina"
* * [__Höre auf__: Tosia.]
~ common_name = "Tosia"
* * [__Höre auf__: Nina.]
~ common_name = "Nina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Helena.]
~ given_names = "Helena"
~ given_names_key = "helena"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Der Name trägt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter."
-> cg_after_given_names_written ->
* * [__Höre auf__: Helena.]
~ common_name = "Helena"
* * [__Höre auf__: Hela.]
~ common_name = "Hela"
* * [__Höre auf__: Helenka.]
~ common_name = "Helenka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Bronisława.]
~ given_names = "Bronisława"
~ given_names_key = "bronislawa"
~ given_names_meaning_fragment = "die weibliche Form von Bronisław und verbindet Schutz mit Ruhm"
~ given_names_combination_note = "Der Name trägt die weibliche Form von Bronisław und verbindet Schutz mit Ruhm."
-> cg_after_given_names_written ->
* * [__Höre auf__: Bronisława.]
~ common_name = "Bronisława"
* * [__Höre auf__: Bronia.]
~ common_name = "Bronia"
* * [__Höre auf__: Bronka.]
~ common_name = "Bronka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,171 @@
// Generated given-name package choices for Arbeiterherkunft / ungarisch
=== cg_given_names_working_hungarian ===
* [__Heiße__: Mária.]
~ given_names = "Mária"
~ given_names_key = "maria"
~ given_names_meaning_fragment = "marianische Frömmigkeit und ungarische Katholizität"
~ given_names_combination_note = "Der Name trägt marianische Frömmigkeit und ungarische Katholizität."
-> cg_after_given_names_written ->
* * [__Höre auf__: Mária.]
~ common_name = "Mária"
* * [__Höre auf__: Mari.]
~ common_name = "Mari"
* * [__Höre auf__: Mariska.]
~ common_name = "Mariska"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Erzsébet.]
~ given_names = "Erzsébet"
~ given_names_key = "erzsebet"
~ given_names_meaning_fragment = "Gottesversprechen und ungarische Standesfarbe"
~ given_names_combination_note = "Der Name trägt Gottesversprechen und ungarische Standesfarbe."
-> cg_after_given_names_written ->
* * [__Höre auf__: Erzsébet.]
~ common_name = "Erzsébet"
* * [__Höre auf__: Erzsi.]
~ common_name = "Erzsi"
* * [__Höre auf__: Bözsi.]
~ common_name = "Bözsi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Katalin.]
~ given_names = "Katalin"
~ given_names_key = "katalin"
~ given_names_meaning_fragment = "Reinheit und stolzer Heiligenklang"
~ given_names_combination_note = "Der Name trägt Reinheit und stolzer Heiligenklang."
-> cg_after_given_names_written ->
* * [__Höre auf__: Katalin.]
~ common_name = "Katalin"
* * [__Höre auf__: Kati.]
~ common_name = "Kati"
* * [__Höre auf__: Kató.]
~ common_name = "Kató"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ilona.]
~ given_names = "Ilona"
~ given_names_key = "ilona"
~ given_names_meaning_fragment = "ungarischer Helenenklang und weiches Licht"
~ given_names_combination_note = "Der Name trägt ungarischer Helenenklang und weiches Licht."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ilona.]
~ common_name = "Ilona"
* * [__Höre auf__: Ilonka.]
~ common_name = "Ilonka"
* * [__Höre auf__: Ili.]
~ common_name = "Ili"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Anna.]
~ given_names = "Anna"
~ given_names_key = "anna"
~ given_names_meaning_fragment = "Gnade und ruhige Beständigkeit"
~ given_names_combination_note = "Der Name trägt Gnade und ruhige Beständigkeit."
-> cg_after_given_names_written ->
* * [__Höre auf__: Anna.]
~ common_name = "Anna"
* * [__Höre auf__: Anni.]
~ common_name = "Anni"
* * [__Höre auf__: Anka.]
~ common_name = "Anka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Margit.]
~ given_names = "Margit"
~ given_names_key = "margit"
~ given_names_meaning_fragment = "Perle und schlichte Kostbarkeit"
~ given_names_combination_note = "Der Name trägt Perle und schlichte Kostbarkeit."
-> cg_after_given_names_written ->
* * [__Höre auf__: Margit.]
~ common_name = "Margit"
* * [__Höre auf__: Margitka.]
~ common_name = "Margitka"
* * [__Höre auf__: Gitta.]
~ common_name = "Gitta"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Róza.]
~ given_names = "Róza"
~ given_names_key = "roza"
~ given_names_meaning_fragment = "gehört zur Rose und trägt ihren klaren, blühenden Klang"
~ given_names_combination_note = "Der Name trägt gehört zur Rose und trägt ihren klaren, blühenden Klang."
-> cg_after_given_names_written ->
* * [__Höre auf__: Róza.]
~ common_name = "Róza"
* * [__Höre auf__: Rózsi.]
~ common_name = "Rózsi"
* * [__Höre auf__: Rózika.]
~ common_name = "Rózika"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Júlia.]
~ given_names = "Júlia"
~ given_names_key = "julia"
~ given_names_meaning_fragment = "jugendlicher Glanz und römischer Klang"
~ given_names_combination_note = "Der Name trägt jugendlicher Glanz und römischer Klang."
-> cg_after_given_names_written ->
* * [__Höre auf__: Júlia.]
~ common_name = "Júlia"
* * [__Höre auf__: Juli.]
~ common_name = "Juli"
* * [__Höre auf__: Juliska.]
~ common_name = "Juliska"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ágnes.]
~ given_names = "Ágnes"
~ given_names_key = "agnes"
~ given_names_meaning_fragment = "Reinheit und stille Heiligenhärte"
~ given_names_combination_note = "Der Name trägt Reinheit und stille Heiligenhärte."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ágnes.]
~ common_name = "Ágnes"
* * [__Höre auf__: Ági.]
~ common_name = "Ági"
* * [__Höre auf__: Ágika.]
~ common_name = "Ágika"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Zsuzsanna.]
~ given_names = "Zsuzsanna"
~ given_names_key = "zsuzsanna"
~ given_names_meaning_fragment = "kommt von Susanna und bedeutet Lilie"
~ given_names_combination_note = "Der Name trägt kommt von Susanna und bedeutet Lilie."
-> cg_after_given_names_written ->
* * [__Höre auf__: Zsuzsanna.]
~ common_name = "Zsuzsanna"
* * [__Höre auf__: Zsuzsa.]
~ common_name = "Zsuzsa"
* * [__Höre auf__: Zsuzsi.]
~ common_name = "Zsuzsi"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,171 @@
// Generated given-name package choices for Arbeiterherkunft / südlich-adriatisch
=== cg_given_names_working_southern ===
* [__Heiße__: Marija.]
~ given_names = "Marija"
~ given_names_key = "marija"
~ given_names_meaning_fragment = "marianische Frömmigkeit und südslawische Nähe"
~ given_names_combination_note = "Der Name trägt marianische Frömmigkeit und südslawische Nähe."
-> cg_after_given_names_written ->
* * [__Höre auf__: Marija.]
~ common_name = "Marija"
* * [__Höre auf__: Mara.]
~ common_name = "Mara"
* * [__Höre auf__: Marica.]
~ common_name = "Marica"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ana.]
~ given_names = "Ana"
~ given_names_key = "ana"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Der Name trägt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ana.]
~ common_name = "Ana"
* * [__Höre auf__: Anica.]
~ common_name = "Anica"
* * [__Höre auf__: Anka.]
~ common_name = "Anka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Giuseppina.]
~ given_names = "Giuseppina"
~ given_names_key = "giuseppina"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Der Name trägt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter."
-> cg_after_given_names_written ->
* * [__Höre auf__: Giuseppina.]
~ common_name = "Giuseppina"
* * [__Höre auf__: Pina.]
~ common_name = "Pina"
* * [__Höre auf__: Peppina.]
~ common_name = "Peppina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Teresa.]
~ given_names = "Teresa"
~ given_names_key = "teresa"
~ given_names_meaning_fragment = "sommerliche Wärme und südliche Katholizität"
~ given_names_combination_note = "Der Name trägt sommerliche Wärme und südliche Katholizität."
-> cg_after_given_names_written ->
* * [__Höre auf__: Teresa.]
~ common_name = "Teresa"
* * [__Höre auf__: Teresina.]
~ common_name = "Teresina"
* * [__Höre auf__: Tessa.]
~ common_name = "Tessa"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Antonia.]
~ given_names = "Antonia"
~ given_names_key = "antonia"
~ given_names_meaning_fragment = "römischer Familienklang und feste Haltung"
~ given_names_combination_note = "Der Name trägt römischer Familienklang und feste Haltung."
-> cg_after_given_names_written ->
* * [__Höre auf__: Antonia.]
~ common_name = "Antonia"
* * [__Höre auf__: Tonia.]
~ common_name = "Tonia"
* * [__Höre auf__: Tonina.]
~ common_name = "Tonina"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Jelena.]
~ given_names = "Jelena"
~ given_names_key = "jelena"
~ given_names_meaning_fragment = "Licht und südslawischer Helenenklang"
~ given_names_combination_note = "Der Name trägt Licht und südslawischer Helenenklang."
-> cg_after_given_names_written ->
* * [__Höre auf__: Jelena.]
~ common_name = "Jelena"
* * [__Höre auf__: Jela.]
~ common_name = "Jela"
* * [__Höre auf__: Jelka.]
~ common_name = "Jelka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Katarina.]
~ given_names = "Katarina"
~ given_names_key = "katarina"
~ given_names_meaning_fragment = "Reinheit und stolzer Heiligenklang"
~ given_names_combination_note = "Der Name trägt Reinheit und stolzer Heiligenklang."
-> cg_after_given_names_written ->
* * [__Höre auf__: Katarina.]
~ common_name = "Katarina"
* * [__Höre auf__: Kata.]
~ common_name = "Kata"
* * [__Höre auf__: Katica.]
~ common_name = "Katica"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Ivana.]
~ given_names = "Ivana"
~ given_names_key = "ivana"
~ given_names_meaning_fragment = "göttliche Gnade und südslawische Nüchternheit"
~ given_names_combination_note = "Der Name trägt göttliche Gnade und südslawische Nüchternheit."
-> cg_after_given_names_written ->
* * [__Höre auf__: Ivana.]
~ common_name = "Ivana"
* * [__Höre auf__: Iva.]
~ common_name = "Iva"
* * [__Höre auf__: Ivanka.]
~ common_name = "Ivanka"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Frančiška.]
~ given_names = "Frančiška"
~ given_names_key = "franciska"
~ given_names_meaning_fragment = "eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter"
~ given_names_combination_note = "Der Name trägt eine weibliche oder regionale Form eines älteren Namens und trägt seinen Klang in eine andere Sprache weiter."
-> cg_after_given_names_written ->
* * [__Höre auf__: Frančiška.]
~ common_name = "Frančiška"
* * [__Höre auf__: Francka.]
~ common_name = "Francka"
* * [__Höre auf__: Fani.]
~ common_name = "Fani"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
* [__Heiße__: Lucia.]
~ given_names = "Lucia"
~ given_names_key = "lucia"
~ given_names_meaning_fragment = "kommt von lux und bedeutet Licht"
~ given_names_combination_note = "Der Name trägt kommt von lux und bedeutet Licht."
-> cg_after_given_names_written ->
* * [__Höre auf__: Lucia.]
~ common_name = "Lucia"
* * [__Höre auf__: Luci.]
~ common_name = "Luci"
* * [__Höre auf__: Lucietta.]
~ common_name = "Lucietta"
- -
-> cg_after_common_name_chosen ->
-> cg_route_surnames ->
->->
@@ -0,0 +1,81 @@
// Generated surname choices for Bürgertum / deutsch-österreichisch
=== cg_surnames_middle_austrian ===
* [__Führe den Namen__: Gruber.]
~ surname = "Gruber"
~ surname_written_form = "Gruber"
~ surname_comment = "Der Name trägt Grube, Hofsenke und Erde in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Huber.]
~ surname = "Huber"
~ surname_written_form = "Huber"
~ surname_comment = "Der Name trägt Hube, Hof und Besitzmaß in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Bauer.]
~ surname = "Bauer"
~ surname_written_form = "Bauer"
~ surname_comment = "Der Name trägt Bauernstand und nutzbare Erde in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Wagner.]
~ surname = "Wagner"
~ surname_written_form = "Wagner"
~ surname_comment = "Der Name trägt Wagen, Werkstatt und Handwerk in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Müller.]
~ surname = "Müller"
~ surname_written_form = "Müller"
~ surname_comment = "Der Name trägt Mühle, Korn und Wasser in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Pichler.]
~ surname = "Pichler"
~ surname_written_form = "Pichler"
~ surname_comment = "Der Name trägt Bühel, Hang und Land in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Steiner.]
~ surname = "Steiner"
~ surname_written_form = "Steiner"
~ surname_comment = "Der Name trägt Stein und Hang in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Mayer.]
~ surname = "Mayer"
~ surname_written_form = "Mayer"
~ surname_comment = "Der Name trägt Meierhof, Verwaltung und bäuerliche Ordnung in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Moser.]
~ surname = "Moser"
~ surname_written_form = "Moser"
~ surname_comment = "Der Name trägt Moos, feuchtes Land und Randlage in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Hofer.]
~ surname = "Hofer"
~ surname_written_form = "Hofer"
~ surname_comment = "Der Name trägt Hof und Zugehörigkeit in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
@@ -0,0 +1,81 @@
// Generated surname choices for Bürgertum / böhmisch-mährisch
=== cg_surnames_middle_bohemian ===
* [__Führe den Namen__: Nováková.]
~ surname = "Nováková"
~ surname_written_form = "Nováková"
~ surname_comment = "Der Name trägt die Neue in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Svobodová.]
~ surname = "Svobodová"
~ surname_written_form = "Svobodová"
~ surname_comment = "Der Name behält böhmischen Klang, auch wenn ihn eine Wiener Feder ordnet. Er wirkt alltäglich genug für Straße und Amt, aber nicht so glatt, daß er Herkunft verliert."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Novotná.]
~ surname = "Novotná"
~ surname_written_form = "Novotná"
~ surname_comment = "Der Name trägt die Neue in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Dvořáková.]
~ surname = "Dvořáková"
~ surname_written_form = "Dvořáková"
~ surname_comment = "Der Name behält böhmischen Klang, auch wenn ihn eine Wiener Feder ordnet. Er wirkt alltäglich genug für Straße und Amt, aber nicht so glatt, daß er Herkunft verliert."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Černá.]
~ surname = "Černá"
~ surname_written_form = "Černá"
~ surname_comment = "Der Name behält böhmischen Klang, auch wenn ihn eine Wiener Feder ordnet. Er wirkt alltäglich genug für Straße und Amt, aber nicht so glatt, daß er Herkunft verliert."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Procházková.]
~ surname = "Procházková"
~ surname_written_form = "Procházková"
~ surname_comment = "Der Name behält böhmischen Klang, auch wenn ihn eine Wiener Feder ordnet. Er wirkt alltäglich genug für Straße und Amt, aber nicht so glatt, daß er Herkunft verliert."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kučerová.]
~ surname = "Kučerová"
~ surname_written_form = "Kučerová"
~ surname_comment = "Der Name behält böhmischen Klang, auch wenn ihn eine Wiener Feder ordnet. Er wirkt alltäglich genug für Straße und Amt, aber nicht so glatt, daß er Herkunft verliert."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Veselá.]
~ surname = "Veselá"
~ surname_written_form = "Veselá"
~ surname_comment = "Der Name behält böhmischen Klang, auch wenn ihn eine Wiener Feder ordnet. Er wirkt alltäglich genug für Straße und Amt, aber nicht so glatt, daß er Herkunft verliert."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Horáková.]
~ surname = "Horáková"
~ surname_written_form = "Horáková"
~ surname_comment = "Der Name behält böhmischen Klang, auch wenn ihn eine Wiener Feder ordnet. Er wirkt alltäglich genug für Straße und Amt, aber nicht so glatt, daß er Herkunft verliert."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Němcová.]
~ surname = "Němcová"
~ surname_written_form = "Němcová"
~ surname_comment = "Der Name behält böhmischen Klang, auch wenn ihn eine Wiener Feder ordnet. Er wirkt alltäglich genug für Straße und Amt, aber nicht so glatt, daß er Herkunft verliert."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
@@ -0,0 +1,81 @@
// Generated surname choices for Bürgertum / galizisch-bukowinisch
=== cg_surnames_middle_eastern ===
* [__Führe den Namen__: Nowak.]
~ surname = "Nowak"
~ surname_written_form = "Nowak"
~ surname_comment = "Der Name trägt der Neue in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kowalska.]
~ surname = "Kowalska"
~ surname_written_form = "Kowalska"
~ surname_comment = "Der Name trägt Schmiedefamilie in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Wiśniewska.]
~ surname = "Wiśniewska"
~ surname_written_form = "Wiśniewska"
~ surname_comment = "Der Name trägt Kirsche in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Wójcik.]
~ surname = "Wójcik"
~ surname_written_form = "Wójcik"
~ surname_comment = "Der Name trägt galizischen oder östlichen Klang und die Nähe von Stadt, Markt und Grenze. Er wirkt gewöhnlich, bis man bemerkt, wie viele Wege in ihm zusammentreffen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kowalczyk.]
~ surname = "Kowalczyk"
~ surname_written_form = "Kowalczyk"
~ surname_comment = "Der Name trägt kleiner Schmied in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kamińska.]
~ surname = "Kamińska"
~ surname_written_form = "Kamińska"
~ surname_comment = "Der Name trägt Stein in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Lewandowska.]
~ surname = "Lewandowska"
~ surname_written_form = "Lewandowska"
~ surname_comment = "Der Name trägt galizischen oder östlichen Klang und die Nähe von Stadt, Markt und Grenze. Er wirkt gewöhnlich, bis man bemerkt, wie viele Wege in ihm zusammentreffen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Dąbrowska.]
~ surname = "Dąbrowska"
~ surname_written_form = "Dąbrowska"
~ surname_comment = "Der Name trägt Eichenhain in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Zielińska.]
~ surname = "Zielińska"
~ surname_written_form = "Zielińska"
~ surname_comment = "Der Name trägt Grünland in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Szymańska.]
~ surname = "Szymańska"
~ surname_written_form = "Szymańska"
~ surname_comment = "Der Name trägt galizischen oder östlichen Klang und die Nähe von Stadt, Markt und Grenze. Er wirkt gewöhnlich, bis man bemerkt, wie viele Wege in ihm zusammentreffen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
@@ -0,0 +1,81 @@
// Generated surname choices for Bürgertum / ungarisch
=== cg_surnames_middle_hungarian ===
* [__Führe den Namen__: Tóth.]
~ surname = "Tóth"
~ surname_written_form = "Tóth"
~ surname_comment = "Der Name steht mit ungarischer Kürze auf dem Papier. Er wirkt knapp, fest und weniger bereit, sich der Wiener Zunge bequem zu machen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Nagy.]
~ surname = "Nagy"
~ surname_written_form = "Nagy"
~ surname_comment = "Der Name trägt groß in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Szabó.]
~ surname = "Szabó"
~ surname_written_form = "Szabó"
~ surname_comment = "Der Name steht mit ungarischer Kürze auf dem Papier. Er wirkt knapp, fest und weniger bereit, sich der Wiener Zunge bequem zu machen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kovács.]
~ surname = "Kovács"
~ surname_written_form = "Kovács"
~ surname_comment = "Der Name steht mit ungarischer Kürze auf dem Papier. Er wirkt knapp, fest und weniger bereit, sich der Wiener Zunge bequem zu machen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Varga.]
~ surname = "Varga"
~ surname_written_form = "Varga"
~ surname_comment = "Der Name steht mit ungarischer Kürze auf dem Papier. Er wirkt knapp, fest und weniger bereit, sich der Wiener Zunge bequem zu machen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Horváth.]
~ surname = "Horváth"
~ surname_written_form = "Horváth"
~ surname_comment = "Der Name steht mit ungarischer Kürze auf dem Papier. Er wirkt knapp, fest und weniger bereit, sich der Wiener Zunge bequem zu machen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kiss.]
~ surname = "Kiss"
~ surname_written_form = "Kiss"
~ surname_comment = "Der Name trägt klein in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Molnár.]
~ surname = "Molnár"
~ surname_written_form = "Molnár"
~ surname_comment = "Der Name steht mit ungarischer Kürze auf dem Papier. Er wirkt knapp, fest und weniger bereit, sich der Wiener Zunge bequem zu machen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Németh.]
~ surname = "Németh"
~ surname_written_form = "Németh"
~ surname_comment = "Der Name steht mit ungarischer Kürze auf dem Papier. Er wirkt knapp, fest und weniger bereit, sich der Wiener Zunge bequem zu machen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Farkas.]
~ surname = "Farkas"
~ surname_written_form = "Farkas"
~ surname_comment = "Der Name trägt Wolf in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
@@ -0,0 +1,81 @@
// Generated surname choices for Bürgertum / südlich-adriatisch
=== cg_surnames_middle_southern ===
* [__Führe den Namen__: Rossi.]
~ surname = "Rossi"
~ surname_written_form = "Rossi"
~ surname_comment = "Der Name klingt nach Süden, Hafen, Karst oder slawischer Nachbarschaft. Auf Wiener Papier bleibt er lesbar, aber nie ganz heimisch."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Rizzi.]
~ surname = "Rizzi"
~ surname_written_form = "Rizzi"
~ surname_comment = "Der Name klingt nach Süden, Hafen, Karst oder slawischer Nachbarschaft. Auf Wiener Papier bleibt er lesbar, aber nie ganz heimisch."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Sartori.]
~ surname = "Sartori"
~ surname_written_form = "Sartori"
~ surname_comment = "Der Name klingt nach Süden, Hafen, Karst oder slawischer Nachbarschaft. Auf Wiener Papier bleibt er lesbar, aber nie ganz heimisch."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: De Marchi.]
~ surname = "De Marchi"
~ surname_written_form = "De Marchi"
~ surname_comment = "Der Name klingt nach Süden, Hafen, Karst oder slawischer Nachbarschaft. Auf Wiener Papier bleibt er lesbar, aber nie ganz heimisch."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Fonda.]
~ surname = "Fonda"
~ surname_written_form = "Fonda"
~ surname_comment = "Der Name klingt nach Süden, Hafen, Karst oder slawischer Nachbarschaft. Auf Wiener Papier bleibt er lesbar, aber nie ganz heimisch."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Slataper.]
~ surname = "Slataper"
~ surname_written_form = "Slataper"
~ surname_comment = "Der Name klingt nach Süden, Hafen, Karst oder slawischer Nachbarschaft. Auf Wiener Papier bleibt er lesbar, aber nie ganz heimisch."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Piani.]
~ surname = "Piani"
~ surname_written_form = "Piani"
~ surname_comment = "Der Name klingt nach Süden, Hafen, Karst oder slawischer Nachbarschaft. Auf Wiener Papier bleibt er lesbar, aber nie ganz heimisch."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Vidmar.]
~ surname = "Vidmar"
~ surname_written_form = "Vidmar"
~ surname_comment = "Der Name trägt wahrscheinlich Hof- oder Siedlungsname in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Novak.]
~ surname = "Novak"
~ surname_written_form = "Novak"
~ surname_comment = "Der Name trägt der Neue in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Kovač.]
~ surname = "Kovač"
~ surname_written_form = "Kovač"
~ surname_comment = "Der Name trägt Schmied in sich, aber in bürgerlicher Schrift wirkt er bereits geordnet, nützlich und amtstauglich."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
@@ -0,0 +1,81 @@
// Generated surname choices for Adel / deutsch-österreichisch
=== cg_surnames_noble_austrian ===
* [__Führe den Namen__: Freiin von Rauhenfels.]
~ surname = "Rauhenfels"
~ surname_written_form = "Freiin von Rauhenfels"
~ surname_comment = "Der Name hat Höhe, Stein und Abstand in sich. Rauhenfels klingt nach einem Haus, das nicht beweisen will, wie alt es ist, sondern nur erwartet, daß man es glaubt."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Traunegg.]
~ surname = "Traunegg"
~ surname_written_form = "Freiin von Traunegg"
~ surname_comment = "Der Name wirkt kleinadelig, alt genug für Vorzimmer und unsicher genug für Akten. Traunegg bittet nicht um Glanz, nur um Anerkennung."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Ebenwald.]
~ surname = "Ebenwald"
~ surname_written_form = "Freiin von Ebenwald"
~ surname_comment = "Der Name trägt Wald, Land und dunkle Wege in sich. Ebenwald wirkt nicht glänzend, sondern verwurzelt, als läge die eigentliche Macht abseits der Straße."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Arnsberg.]
~ surname = "Arnsberg"
~ surname_written_form = "Freiin von Arnsberg"
~ surname_comment = "Der Name hat Höhe, Stein und Abstand in sich. Arnsberg klingt nach einem Haus, das nicht beweisen will, wie alt es ist, sondern nur erwartet, daß man es glaubt."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Reichenau.]
~ surname = "Reichenau"
~ surname_written_form = "Freiin von Reichenau"
~ surname_comment = "Der Name sucht nicht nur Rang, sondern Klang. Reichenau wirkt schöner, als ein bloßer Besitzname müßte, und gerade darum ein wenig berechnet."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Waldstätten.]
~ surname = "Waldstätten"
~ surname_written_form = "Freiin von Waldstätten"
~ surname_comment = "Der Name trägt Wald, Land und dunkle Wege in sich. Waldstätten wirkt nicht glänzend, sondern verwurzelt, als läge die eigentliche Macht abseits der Straße."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Greiffenstein.]
~ surname = "Greiffenstein"
~ surname_written_form = "Freiin von Greiffenstein"
~ surname_comment = "Der Name wirkt kleinadelig, alt genug für Vorzimmer und unsicher genug für Akten. Greiffenstein bittet nicht um Glanz, nur um Anerkennung."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Lichtenau.]
~ surname = "Lichtenau"
~ surname_written_form = "Freiin von Lichtenau"
~ surname_comment = "Der Name sucht nicht nur Rang, sondern Klang. Lichtenau wirkt schöner, als ein bloßer Besitzname müßte, und gerade darum ein wenig berechnet."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Altenried.]
~ surname = "Altenried"
~ surname_written_form = "Freiin von Altenried"
~ surname_comment = "Der Name wirkt kleinadelig, alt genug für Vorzimmer und unsicher genug für Akten. Altenried bittet nicht um Glanz, nur um Anerkennung."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Hartenfels.]
~ surname = "Hartenfels"
~ surname_written_form = "Freiin von Hartenfels"
~ surname_comment = "Der Name hat Höhe, Stein und Abstand in sich. Hartenfels klingt nach einem Haus, das nicht beweisen will, wie alt es ist, sondern nur erwartet, daß man es glaubt."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
@@ -0,0 +1,81 @@
// Generated surname choices for Adel / böhmisch-mährisch
=== cg_surnames_noble_bohemian ===
* [__Führe den Namen__: Freiin von Hradek.]
~ surname = "Hradek"
~ surname_written_form = "Freiin von Hradek"
~ surname_comment = "Der Name wirkt kleinadelig, alt genug für Vorzimmer und unsicher genug für Akten. Hradek bittet nicht um Glanz, nur um Anerkennung."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Wranitz.]
~ surname = "Wranitz"
~ surname_written_form = "Freiin von Wranitz"
~ surname_comment = "Der Name wirkt kleinadelig, alt genug für Vorzimmer und unsicher genug für Akten. Wranitz bittet nicht um Glanz, nur um Anerkennung."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Zelenberg.]
~ surname = "Zelenberg"
~ surname_written_form = "Freiin von Zelenberg"
~ surname_comment = "Der Name hat Höhe, Stein und Abstand in sich. Zelenberg klingt nach einem Haus, das nicht beweisen will, wie alt es ist, sondern nur erwartet, daß man es glaubt."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Czerninau.]
~ surname = "Czerninau"
~ surname_written_form = "Freiin von Czerninau"
~ surname_comment = "Der Name wirkt kleinadelig, alt genug für Vorzimmer und unsicher genug für Akten. Czerninau bittet nicht um Glanz, nur um Anerkennung."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Taboritz.]
~ surname = "Taboritz"
~ surname_written_form = "Freiin von Taboritz"
~ surname_comment = "Der Name wirkt kleinadelig, alt genug für Vorzimmer und unsicher genug für Akten. Taboritz bittet nicht um Glanz, nur um Anerkennung."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Kralowitz.]
~ surname = "Kralowitz"
~ surname_written_form = "Freiin von Kralowitz"
~ surname_comment = "Der Name wirkt kleinadelig, alt genug für Vorzimmer und unsicher genug für Akten. Kralowitz bittet nicht um Glanz, nur um Anerkennung."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Rosenek.]
~ surname = "Rosenek"
~ surname_written_form = "Freiin von Rosenek"
~ surname_comment = "Der Name sucht nicht nur Rang, sondern Klang. Rosenek wirkt schöner, als ein bloßer Besitzname müßte, und gerade darum ein wenig berechnet."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Dobrawitz.]
~ surname = "Dobrawitz"
~ surname_written_form = "Freiin von Dobrawitz"
~ surname_comment = "Der Name wirkt kleinadelig, alt genug für Vorzimmer und unsicher genug für Akten. Dobrawitz bittet nicht um Glanz, nur um Anerkennung."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Sazawa.]
~ surname = "Sazawa"
~ surname_written_form = "Freiin von Sazawa"
~ surname_comment = "Der Name trägt Wald, Land und dunkle Wege in sich. Sazawa wirkt nicht glänzend, sondern verwurzelt, als läge die eigentliche Macht abseits der Straße."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Beneschau.]
~ surname = "Beneschau"
~ surname_written_form = "Freiin von Beneschau"
~ surname_comment = "Der Name wirkt kleinadelig, alt genug für Vorzimmer und unsicher genug für Akten. Beneschau bittet nicht um Glanz, nur um Anerkennung."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
@@ -0,0 +1,81 @@
// Generated surname choices for Adel / galizisch-bukowinisch
=== cg_surnames_noble_eastern ===
* [__Führe den Namen__: Freiin von Zaleska.]
~ surname = "Zaleska"
~ surname_written_form = "Freiin von Zaleska"
~ surname_comment = "Der Name klingt nach östlicher Ferne, polnischer Form und einem Adel, der in Wien zugleich brauchbar und verdächtig wirkt. Zaleska bringt Herkunft mit, nicht Ruhe."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Wisnowitz.]
~ surname = "Wisnowitz"
~ surname_written_form = "Freiin von Wisnowitz"
~ surname_comment = "Der Name klingt nach östlicher Ferne, polnischer Form und einem Adel, der in Wien zugleich brauchbar und verdächtig wirkt. Wisnowitz bringt Herkunft mit, nicht Ruhe."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Tarnowicz.]
~ surname = "Tarnowicz"
~ surname_written_form = "Freiin von Tarnowicz"
~ surname_comment = "Der Name klingt nach östlicher Ferne, polnischer Form und einem Adel, der in Wien zugleich brauchbar und verdächtig wirkt. Tarnowicz bringt Herkunft mit, nicht Ruhe."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Lembergau.]
~ surname = "Lembergau"
~ surname_written_form = "Freiin von Lembergau"
~ surname_comment = "Der Name hat Höhe, Stein und Abstand in sich. Lembergau klingt nach einem Haus, das nicht beweisen will, wie alt es ist, sondern nur erwartet, daß man es glaubt."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Stryjewicz.]
~ surname = "Stryjewicz"
~ surname_written_form = "Freiin von Stryjewicz"
~ surname_comment = "Der Name klingt nach östlicher Ferne, polnischer Form und einem Adel, der in Wien zugleich brauchbar und verdächtig wirkt. Stryjewicz bringt Herkunft mit, nicht Ruhe."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Dąbrowa.]
~ surname = "Dąbrowa"
~ surname_written_form = "Freiin von Dąbrowa"
~ surname_comment = "Der Name trägt Wald, Land und dunkle Wege in sich. Dąbrowa wirkt nicht glänzend, sondern verwurzelt, als läge die eigentliche Macht abseits der Straße."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Zielona.]
~ surname = "Zielona"
~ surname_written_form = "Freiin von Zielona"
~ surname_comment = "Der Name trägt Wald, Land und dunkle Wege in sich. Zielona wirkt nicht glänzend, sondern verwurzelt, als läge die eigentliche Macht abseits der Straße."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Brody.]
~ surname = "Brody"
~ surname_written_form = "Freiin von Brody"
~ surname_comment = "Der Name klingt nach östlicher Ferne, polnischer Form und einem Adel, der in Wien zugleich brauchbar und verdächtig wirkt. Brody bringt Herkunft mit, nicht Ruhe."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Rohatyn.]
~ surname = "Rohatyn"
~ surname_written_form = "Freiin von Rohatyn"
~ surname_comment = "Der Name klingt nach östlicher Ferne, polnischer Form und einem Adel, der in Wien zugleich brauchbar und verdächtig wirkt. Rohatyn bringt Herkunft mit, nicht Ruhe."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Czernowice.]
~ surname = "Czernowice"
~ surname_written_form = "Freiin von Czernowice"
~ surname_comment = "Der Name klingt nach östlicher Ferne, polnischer Form und einem Adel, der in Wien zugleich brauchbar und verdächtig wirkt. Czernowice bringt Herkunft mit, nicht Ruhe."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
@@ -0,0 +1,81 @@
// Generated surname choices for Adel / ungarisch
=== cg_surnames_noble_hungarian ===
* [__Führe den Namen__: Freiin von Farkasháza.]
~ surname = "Farkasháza"
~ surname_written_form = "Freiin von Farkasháza"
~ surname_comment = "Der Name trägt ungarischen Klang unter Wiener Schreibweise. Farkasháza wirkt wie ein Kompromiß aus Hof, Komitat und der Weigerung, sich ganz übersetzen zu lassen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Sárkányfalva.]
~ surname = "Sárkányfalva"
~ surname_written_form = "Freiin von Sárkányfalva"
~ surname_comment = "Der Name trägt ungarischen Klang unter Wiener Schreibweise. Sárkányfalva wirkt wie ein Kompromiß aus Hof, Komitat und der Weigerung, sich ganz übersetzen zu lassen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Horváthfalva.]
~ surname = "Horváthfalva"
~ surname_written_form = "Freiin von Horváthfalva"
~ surname_comment = "Der Name trägt ungarischen Klang unter Wiener Schreibweise. Horváthfalva wirkt wie ein Kompromiß aus Hof, Komitat und der Weigerung, sich ganz übersetzen zu lassen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Nagyberek.]
~ surname = "Nagyberek"
~ surname_written_form = "Freiin von Nagyberek"
~ surname_comment = "Der Name trägt Wald, Land und dunkle Wege in sich. Nagyberek wirkt nicht glänzend, sondern verwurzelt, als läge die eigentliche Macht abseits der Straße."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Keresztúr.]
~ surname = "Keresztúr"
~ surname_written_form = "Freiin von Keresztúr"
~ surname_comment = "Der Name trägt ungarischen Klang unter Wiener Schreibweise. Keresztúr wirkt wie ein Kompromiß aus Hof, Komitat und der Weigerung, sich ganz übersetzen zu lassen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Várhegy.]
~ surname = "Várhegy"
~ surname_written_form = "Freiin von Várhegy"
~ surname_comment = "Der Name hat Höhe, Stein und Abstand in sich. Várhegy klingt nach einem Haus, das nicht beweisen will, wie alt es ist, sondern nur erwartet, daß man es glaubt."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Szalavár.]
~ surname = "Szalavár"
~ surname_written_form = "Freiin von Szalavár"
~ surname_comment = "Der Name trägt ungarischen Klang unter Wiener Schreibweise. Szalavár wirkt wie ein Kompromiß aus Hof, Komitat und der Weigerung, sich ganz übersetzen zu lassen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Báthor.]
~ surname = "Báthor"
~ surname_written_form = "Freiin von Báthor"
~ surname_comment = "Der Name trägt ungarischen Klang unter Wiener Schreibweise. Báthor wirkt wie ein Kompromiß aus Hof, Komitat und der Weigerung, sich ganz übersetzen zu lassen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Feketehalom.]
~ surname = "Feketehalom"
~ surname_written_form = "Freiin von Feketehalom"
~ surname_comment = "Der Name hat Höhe, Stein und Abstand in sich. Feketehalom klingt nach einem Haus, das nicht beweisen will, wie alt es ist, sondern nur erwartet, daß man es glaubt."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Aranyos.]
~ surname = "Aranyos"
~ surname_written_form = "Freiin von Aranyos"
~ surname_comment = "Der Name sucht nicht nur Rang, sondern Klang. Aranyos wirkt schöner, als ein bloßer Besitzname müßte, und gerade darum ein wenig berechnet."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
@@ -0,0 +1,81 @@
// Generated surname choices for Adel / südlich-adriatisch
=== cg_surnames_noble_southern ===
* [__Führe den Namen__: Freiin von Valcroce.]
~ surname = "Valcroce"
~ surname_written_form = "Freiin von Valcroce"
~ surname_comment = "Der Name sucht nicht nur Rang, sondern Klang. Valcroce wirkt schöner, als ein bloßer Besitzname müßte, und gerade darum ein wenig berechnet."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von San Dorigo.]
~ surname = "San Dorigo"
~ surname_written_form = "Freiin von San Dorigo"
~ surname_comment = "Der Name sucht nicht nur Rang, sondern Klang. San Dorigo wirkt schöner, als ein bloßer Besitzname müßte, und gerade darum ein wenig berechnet."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Carstberg.]
~ surname = "Carstberg"
~ surname_written_form = "Freiin von Carstberg"
~ surname_comment = "Der Name hat Höhe, Stein und Abstand in sich. Carstberg klingt nach einem Haus, das nicht beweisen will, wie alt es ist, sondern nur erwartet, daß man es glaubt."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Adelsberg.]
~ surname = "Adelsberg"
~ surname_written_form = "Freiin von Adelsberg"
~ surname_comment = "Der Name hat Höhe, Stein und Abstand in sich. Adelsberg klingt nach einem Haus, das nicht beweisen will, wie alt es ist, sondern nur erwartet, daß man es glaubt."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Krainburg.]
~ surname = "Krainburg"
~ surname_written_form = "Freiin von Krainburg"
~ surname_comment = "Der Name trägt Meer, Karst und Grenzland in sich. Krainburg klingt nach einer Familie, die zur Monarchie gehört, ohne je ganz nach Wien zu klingen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Aurisina.]
~ surname = "Aurisina"
~ surname_written_form = "Freiin von Aurisina"
~ surname_comment = "Der Name trägt Meer, Karst und Grenzland in sich. Aurisina klingt nach einer Familie, die zur Monarchie gehört, ohne je ganz nach Wien zu klingen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Montenero.]
~ surname = "Montenero"
~ surname_written_form = "Freiin von Montenero"
~ surname_comment = "Der Name hat Höhe, Stein und Abstand in sich. Montenero klingt nach einem Haus, das nicht beweisen will, wie alt es ist, sondern nur erwartet, daß man es glaubt."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Zupanegg.]
~ surname = "Zupanegg"
~ surname_written_form = "Freiin von Zupanegg"
~ surname_comment = "Der Name trägt Meer, Karst und Grenzland in sich. Zupanegg klingt nach einer Familie, die zur Monarchie gehört, ohne je ganz nach Wien zu klingen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Hohenkarst.]
~ surname = "Hohenkarst"
~ surname_written_form = "Freiin von Hohenkarst"
~ surname_comment = "Der Name hat Höhe, Stein und Abstand in sich. Hohenkarst klingt nach einem Haus, das nicht beweisen will, wie alt es ist, sondern nur erwartet, daß man es glaubt."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Freiin von Castelreith.]
~ surname = "Castelreith"
~ surname_written_form = "Freiin von Castelreith"
~ surname_comment = "Der Name hat Höhe, Stein und Abstand in sich. Castelreith klingt nach einem Haus, das nicht beweisen will, wie alt es ist, sondern nur erwartet, daß man es glaubt."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
@@ -0,0 +1,81 @@
// Generated surname choices for Arbeiterherkunft / deutsch-österreichisch
=== cg_surnames_working_austrian ===
* [__Führe den Namen__: Berger.]
~ surname = "Berger"
~ surname_written_form = "Berger"
~ surname_comment = "Der Name trägt Berg, Höhe und feste Herkunft in sich. Er klingt nach Arbeit, Herkunft und einer Welt, in der niemand einen Namen braucht, um Abstand zu schaffen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Leitner.]
~ surname = "Leitner"
~ surname_written_form = "Leitner"
~ surname_comment = "Der Name trägt Leite, Hang und schmale Wege in sich. Er klingt nach Arbeit, Herkunft und einer Welt, in der niemand einen Namen braucht, um Abstand zu schaffen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Fuchs.]
~ surname = "Fuchs"
~ surname_written_form = "Fuchs"
~ surname_comment = "Der Name trägt Fuchs, List und rote Spur in sich. Er klingt nach Arbeit, Herkunft und einer Welt, in der niemand einen Namen braucht, um Abstand zu schaffen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Eder.]
~ surname = "Eder"
~ surname_written_form = "Eder"
~ surname_comment = "Der Name trägt alter Hofname und ländliche Zugehörigkeit in sich. Er klingt nach Arbeit, Herkunft und einer Welt, in der niemand einen Namen braucht, um Abstand zu schaffen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Fischer.]
~ surname = "Fischer"
~ surname_written_form = "Fischer"
~ surname_comment = "Der Name trägt Wasser, Netze und frühe Arbeit in sich. Er klingt nach Arbeit, Herkunft und einer Welt, in der niemand einen Namen braucht, um Abstand zu schaffen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Schmid.]
~ surname = "Schmid"
~ surname_written_form = "Schmid"
~ surname_comment = "Der Name trägt Schmiede, Feuer und Handwerk in sich. Er klingt nach Arbeit, Herkunft und einer Welt, in der niemand einen Namen braucht, um Abstand zu schaffen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Winkler.]
~ surname = "Winkler"
~ surname_written_form = "Winkler"
~ surname_comment = "Der Name trägt Winkel, Ecke und kleine Besitzverhältnisse in sich. Er klingt nach Arbeit, Herkunft und einer Welt, in der niemand einen Namen braucht, um Abstand zu schaffen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Schwarz.]
~ surname = "Schwarz"
~ surname_written_form = "Schwarz"
~ surname_comment = "Der Name trägt dunkle Farbe und nüchterne Einfachheit in sich. Er klingt nach Arbeit, Herkunft und einer Welt, in der niemand einen Namen braucht, um Abstand zu schaffen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Weber.]
~ surname = "Weber"
~ surname_written_form = "Weber"
~ surname_comment = "Der Name trägt Webstuhl, Faden und häusliches Gewerbe in sich. Er klingt nach Arbeit, Herkunft und einer Welt, in der niemand einen Namen braucht, um Abstand zu schaffen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->
* [__Führe den Namen__: Maier.]
~ surname = "Maier"
~ surname_written_form = "Maier"
~ surname_comment = "Der Name trägt Meierhof und Dienstordnung in sich. Er klingt nach Arbeit, Herkunft und einer Welt, in der niemand einen Namen braucht, um Abstand zu schaffen."
Du setzt darunter: {surname_written_form}.
-> cg_after_surname_written ->
->->

Some files were not shown because too many files have changed in this diff Show More