Reference

Country scenes

Content type
scenes
Files
data/scenes.json, data/scenes/
Shape
A list of records, each with its own id
Patch target
scene:<id>, for example scene:core.scene.eng
In the base game
31 records
Guide
Scenes: a country's own darts

Fields#

Indented fields belong to the field above them. [] marks the items of a list. A field that is not required may be left out; the default is used.

FieldTypeRequiredDefaultNotes
ididYesNamespaced id, e.g. "core.player.rory-calder"
countrieslist, up to 120 items[]
nametext, up to 60 charactersYes
bodytext, up to 80 characters
organisationidThe governing body as an organisation (by id), with its logo and its page.
descriptiontext, up to 400 characters
startabletrue or falsefalse
fallbacktrue or falsefalse
activeone of the options"resident"Options: resident, always.
levelone of the optionsOptions: full, background.
seasonStartwhole number, 1 to 121
seasonOffsetwhole number, 0 to 11
wordsmap (key: value)
rungslist, 1 to 12 itemsYes
rungs[].roleone of the optionsYesOptions: local, youth, ranking, development, national.
rungs[].tourIdidYesNamespaced id, e.g. "core.player.rory-calder" Names a tour record.
rungs[].entryone of the options"residents"Options: residents, open.
rungs[].oflist, 1 to 64 items
rungs[].localstrue or false
rungs[].seasonStartwhole number, 1 to 12
populationobject
population.localswhole number, 0 to 20000
population.youthwhole number, 0 to 10000
population.juniorswhole number, 0 to 10000
population.nationalsnumber, 0 to 11
population.ceilingnumber, 1 to 100
population.proswhole number, 0 to 2000
population.backgroundLocalswhole number, 0 to 5000
population.backgroundYouthwhole number, 0 to 5000
population.backgroundJuniorswhole number, 0 to 5000
abstractobject
abstract.midnumber, 1 to 100Yes
abstract.scalenumber, 0.1 to 100Yes
abstract.spreadnumber, 0 to 5Yes
abstract.keepwhole number, 1 to 256Yes
abstract.historyYearswhole number, 1 to 100Yes
templateobject
template.venueslist[]
template.venues[].ididYesNamespaced id, e.g. "core.player.rory-calder"
template.venues[].nametextYes
template.venues[].citytextYes
template.venues[].countrynation codeYes3-letter nationality code
template.venues[].kindone of the optionsYesOptions: pub, club, ballroom, hall, arena.
template.venues[].capacitywhole number, 10 to 30,000Yes
template.venues[].hostilitynumber, 0 to 1Yes0 = friendly, 1 = bear pit. Scales crowd pressure on visiting players.
template.venues[].conditionsnumber, 0.95 to 1.11Spread multiplier from lighting/stage/heat. 1 = neutral.
template.venues[].backdroptextAsset path, relative to the mod
template.venues[].regiontext, up to 40 characters
template.tourslist[]
template.tours[].ididYesNamespaced id, e.g. "core.player.rory-calder"
template.tours[].tierwhole number, 1 to 5Yes1 = World Series … 5 = County & Open Circuit
template.tours[].nametextYes
template.tours[].shortNametext, up to 16 charactersYes
template.tours[].tierLabeltext, up to 20 charactersWhat a player at this tier is called on badges (e.g. "Pro Tour"). Defaults to the game's labels.
template.tours[].colourcolour, #rrggbbYes
template.tours[].broadcastidNamespaced id, e.g. "core.player.rory-calder"
template.tours[].badgetrue or falseSet to false for a grouping of events rather than a tour of its own (the Elite Series): its events carry no tour badge on the calendar, the event pages, the lobby or the cards. Shown when left out.
template.tours[].presstrue or false
template.tours[].descriptiontext
template.tours[].boardone of the optionssteel or soft: the boards the tour's events are played on, unless an event says otherwise. Steel when left out. Options: steel, soft.
template.tours[].roleone of the optionsOptions: pro, feeder, junior, veterans.
template.tours[].organisationidNamespaced id, e.g. "core.player.rory-calder"
template.tours[].rungobject
template.tours[].rung.sceneidYesNamespaced id, e.g. "core.player.rory-calder"
template.tours[].rung.roleone of the optionsYesOptions: local, youth, ranking, development, national.
template.tours[].rung.entryone of the options"residents"Options: residents, open.
template.tours[].rung.oflist, 1 to 64 items
template.tours[].rung.localstrue or false
template.tours[].rung.stagedForOftrue or false
template.tours[].rulesobjectYes
template.tours[].rules.requiresTourCardtrue or falsefalse
template.tours[].rules.closedToTourCardtrue or falsefalse
template.tours[].rules.openToTourCardtrue or falsefalse
template.tours[].rules.closedToOomTopwhole number, 1 to 9999
template.tours[].rules.cardsAwardedwhole number, at least 00Tour Cards handed out from this tour's Order of Merit each season.
template.tours[].rules.cardYearswhole number, 1 to 42Years a Tour Card lasts once earned.
template.tours[].rules.orderOfMeritone of the options"season"Options: rolling2y, season, none.
template.tours[].rules.minAgewhole number, 0 to 99
template.tours[].rules.countsTowardsidNamespaced id, e.g. "core.player.rory-calder"
template.tours[].rules.phaseslist, 1 to 11 items
template.tours[].rules.cardslist, 1 to 8 items
template.tours[].rules.cards[].keytextYesPattern: ^[a-z0-9-]+$
template.tours[].rules.cards[].nametext, up to 80 charactersYes
template.tours[].rules.cards[].topwhole number, 1 to 64Yes
template.tours[].rules.cards[].monthswhole number, 1 to 3612
template.tours[].rules.cards[].intoidYesNamespaced id, e.g. "core.player.rory-calder"
template.tours[].rules.cards[].benefitone of the options"place"Options: place, seed.
template.tours[].rules.cards[].freetrue or falsefalse
template.tours[].rules.replyToInvitationstrue or falsefalse
template.tours[].rules.preQualifiedLossUncreditedtrue or falsefalse
template.tours[].rules.rollingListobject
template.tours[].rules.rollingList.nametext, up to 80 charactersYes
template.tours[].rules.rollingList.shortNametext, up to 40 characters
template.tours[].rules.rollingList.addslist, up to 16 items
template.tours[].rules.rollingList.windowDayswhole number, 28 to 1461365
template.tours[].rules.rollingList.seedstrue or falsefalse
template.tours[].rules.rollingList.meritCuttrue or falsefalse
template.eventslist[]
template.events[].ididYesNamespaced id, e.g. "core.player.rory-calder"
template.events[].tourIdidYesNamespaced id, e.g. "core.player.rory-calder" Names a tour record.
template.events[].nametextYes
template.events[].shortNametext, up to 20 characters
template.events[].boardone of the optionssteel or soft (soft-tip boards), over the tour's board; steel when neither says. The match itself plays as before for now. Options: steel, soft.
template.events[].stagetext, up to 40 characters
template.events[].trophytext, up to 60 characters
template.events[].broadcastidNamespaced id, e.g. "core.player.rory-calder"
template.events[].organisationidThe organisation (by id) that runs this event, when it is not its tour's.
template.events[].venueIdidYesNamespaced id, e.g. "core.player.rory-calder" Names a venue record.
template.events[].monthwhole number, 1 to 12Yes
template.events[].weekwhole number, 1 to 5YesWeek of the month the event starts (the n-th such weekday; 5 may roll into next month)
template.events[].dayswhole number, 1 to 281
template.events[].scheduleobject
template.events[].schedule.roundDayslist, 1 to 16 items
template.events[].schedule.restDayslist, up to 31 items
template.events[].fieldSizewhole number, 2 to 256Yes
template.events[].entryone of the optionsYesOptions: open, tourCard, invitation, ranking.
template.events[].seedswhole number, at least 00For 'ranking' entry: how many from the Order of Merit get in.
template.events[].roundslistYesRound formats, first round → final. Length must be log2(field after groups).
template.events[].rounds[]one of several shapesYes
Shape 1 (with bestOfLegs)
template.events[].rounds[].bestOfLegswhole number, 1 to 41Yes
template.events[].rounds[].tieBreakobject
template.events[].rounds[].tieBreak.winBywhole number, 2 to 3Yes
template.events[].rounds[].tieBreak.suddenDeathAtwhole number, 1 to 30
Shape 2 (with bestOfSets)
template.events[].rounds[].bestOfSetswhole number, 1 to 13Yes
template.events[].rounds[].legsPerSetwhole number, 3 to 95
template.events[].rounds[].decidingSetobject
template.events[].rounds[].decidingSet.winBywhole number, 2 to 3Yes
template.events[].rounds[].decidingSet.suddenDeathAtwhole number, 1 to 30
template.events[].groupsobject
template.events[].groups.countwhole number, at least 1Yes
template.events[].groups.sizewhole number, 3 to 8Yes
template.events[].groups.advancewhole number, 1 to 4Yes
template.events[].groups.formatone of several shapesYes
Shape 1 (with bestOfLegs)
template.events[].groups.format.bestOfLegswhole number, 1 to 41Yes
template.events[].groups.format.tieBreakobject
template.events[].groups.format.tieBreak.winBywhole number, 2 to 3Yes
template.events[].groups.format.tieBreak.suddenDeathAtwhole number, 1 to 30
Shape 2 (with bestOfSets)
template.events[].groups.format.bestOfSetswhole number, 1 to 13Yes
template.events[].groups.format.legsPerSetwhole number, 3 to 95
template.events[].groups.format.decidingSetobject
template.events[].groups.format.decidingSet.winBywhole number, 2 to 3Yes
template.events[].groups.format.decidingSet.suddenDeathAtwhole number, 1 to 30
template.events[].groups.byeswhole number, 0 to 32The top byes seeds skip the group stage and go straight into the knockout (field = count × size + byes; knockout = count × advance + byes).
template.events[].groups.tableone of the optionsOptions: combined.
template.events[].cascadeobject
template.events[].cascade.formatone of several shapesYes
Shape 1 (with bestOfLegs)
template.events[].cascade.format.bestOfLegswhole number, 1 to 41Yes
template.events[].cascade.format.tieBreakobject
template.events[].cascade.format.tieBreak.winBywhole number, 2 to 3Yes
template.events[].cascade.format.tieBreak.suddenDeathAtwhole number, 1 to 30
Shape 2 (with bestOfSets)
template.events[].cascade.format.bestOfSetswhole number, 1 to 13Yes
template.events[].cascade.format.legsPerSetwhole number, 3 to 95
template.events[].cascade.format.decidingSetobject
template.events[].cascade.format.decidingSet.winBywhole number, 2 to 3Yes
template.events[].cascade.format.decidingSet.suddenDeathAtwhole number, 1 to 30
template.events[].cascade.orderone of the options"field"Options: field, seriesAverage.
template.events[].cascade.stageslist, at least 1 itemYes
template.events[].cascade.stages[].idtextYes
template.events[].cascade.stages[].groupswhole number, 1 to 81
template.events[].cascade.stages[].sizewhole number, 2 to 8Yes
template.events[].cascade.stages[].advancewhole number, 1 to 4
template.events[].cascade.stages[].newwhole number, 0 to 64
template.events[].cascade.stages[].fromlist
template.events[].cascade.stages[].from[].stagetextYes
template.events[].cascade.stages[].from[].placeslist, at least 1 itemYes
template.events[].cascade.stages[].nametext
template.events[].cascade.stages[].dayFromwhole number, 1 to 7
template.events[].cascade.stages[].dayTowhole number, 1 to 7
template.events[].cascade.stages[].meetingswhole number, 1 to 41
template.events[].cascade.knockoutDayslist, at least 1 item
template.events[].startScorewhole number501
template.events[].doubleIntrue or falsefalse
template.events[].finishone of the options"double"Options: double, single.
template.events[].formatBandslist, at least 1 item
template.events[].formatBands[].maxLevelwhole number, 0 to 100Yes
template.events[].formatBands[].startScorewhole numberYes
template.events[].formatBands[].finishone of the options"double"Options: double, single.
template.events[].prizeslist, at least 1 itemYesPrize money by finishing position: [winner, runner-up, semi-finalist, quarter-finalist, …].
template.events[].entryFeewhole number, at least 00
template.events[].rankedtrue or falsetrueCounts towards the Order of Merit.
template.events[].tvtrue or falsefalse
template.events[].majortrue or falsefalse
template.events[].crowdnumber, 0 to 10.30..1 crowd size/energy for presentation and pressure.
template.events[].tagslist[]Special meanings for the career engine: "qschool", "worldChampionship", "playersFinals", "youth" (under-25s only), "county", "leagueNight" (a night of a league: winning it is not a title).
template.events[].onlinetrue or false
template.events[].teamsobjectTeam event: the field is fieldSize teams. "nations" = each nation's top size players on the Order of Merit, playing pairs matches.
template.events[].teams.kindone of the optionsYesOptions: nations, squads, pairs.
template.events[].teams.sizewhole number, 2 to 4Yes
template.events[].teams.squadslist, 2 to 64 items
template.events[].teams.rankingtextThe ranking that picks each nation's players and orders the nations. Default "oom". Pattern: ^(oom|tour:.+|season:.+|last:.+|phase:.+|stage:.+|average:.+|rolling:.+)$
template.events[].teams.nationRankingslist, 1 to 16 itemsNations events only: for the nations listed, pick players from another ranking first (an affiliate tour's list). Each nation listed takes its players in the top keepTop of the event's ranking first, then its best on this ranking, then its best as any other nation. The nations are still ordered and seeded on the event's own ranking.
template.events[].teams.nationRankings[].rankingtextYesA ranking a route can read: "oom" (the two-year Order of Merit), "tour:<tourId>" (that tour's own table: two years when its rules say rolling2y, else this season) or "season:<tourId>" (this season's money on that tour). Pattern: ^(oom|tour:.+|season:.+|last:.+|phase:.+|stage:.+|average:.+|rolling:.+)$
template.events[].teams.nationRankings[].nationslist, 1 to 64 itemsYes
template.events[].teams.nationRankings[].keepTopwhole number, 1 to 1000How far down the event's own ranking a listed nation's players are still picked first. Omitted: none are.
template.events[].teams.pickone of the optionsOptions: best, turns.
template.events[].teams.turnsFromAgewhole number, 1 to 99
template.events[].teams.sideswhole number, 2 to 8
template.events[].teams.regionsmap (key: value)
template.events[].teams.homesmap (key: value)
template.events[].teams.areasmap (key: value)
template.events[].teams.countytrue or false
template.events[].teams.minPlayerswhole number, 1 to 4Fewest players a nation needs to enter (default size). Below size the team is short-handed and missingPartner decides how it plays.
template.events[].teams.minAgewhole number, 1 to 99Nations events only: the youngest age, on the event's first day, a player must be to play for a nation. A nation with too few players old enough plays short-handed, down to minPlayers, or sits out.
template.events[].teams.missingPartnerone of the optionsA short-handed team in a pairs match: "solo" = its player throws every visit (start score + soloHandicap each leg); "bye" = it concedes the pairs match (a walkover). Singles against a missing player are always walkovers. Default "solo". Options: solo, bye.
template.events[].teams.soloHandicapwhole number, 0 to 200Points added to a lone player's start score in each pairs leg (0 = none).
template.events[].teams.hostone of several shapesHost nation: always in the field (a nation code, or "venue" = the venue's country).
Shape 1: nation code
Shape 2: exactly "venue"
template.events[].teams.prizeSplitone of the optionsPrize money: "each" = every player gets the listed prize (default); "share" = it's per team, split between the players. Options: each, share.
template.events[].teams.tieslistKnockout rounds played as team ties (singles and pairs rubbers). Others: one pairs match.
template.events[].teams.ties[].fromwhole number, at least 1Yes
template.events[].teams.ties[].towhole number, at least 1
template.events[].teams.ties[].rubberslist, 1 to 9 itemsYes
template.events[].teams.ties[].rubbers[]one of several shapesYesOne rubber of a team tie: a singles match between the teams' a-th and b-th players (1 = each team's best ranked), or a pairs match.
template.events[].teams.ties[].toWinwhole number, 1 to 5Yes
template.events[].teams.tableobject
template.events[].teams.table.seriestext, up to 80 charactersYes
template.events[].teams.table.winwhole number, 0 to 10Yes
template.events[].teams.table.losswhole number, 0 to 10
template.events[].teams.table.orderlist, 1 to 5 itemsYes
template.events[].teams.table.tierslist, 1 to 8 items
template.events[].teams.table.tiers[]list, 2 to 32 itemsYes
template.events[].teams.table.movewhole number, 0 to 8
template.events[].teams.table.fromwhole number, 1 to 12
template.events[].teams.tierwhole number, 1 to 8
template.events[].teams.fixturesobject
template.events[].teams.fixtures.roundwhole number, 1 to 62Yes
template.events[].leagueone of several shapesLeague series (e.g. a weekly TV league). A night: every line-up player plays one fixture (fieldSize = players, one entry in rounds). The play-off night: a knockout of the table's top top (fieldSize = top).
Shape 1 (with series, night, nights)
template.events[].league.seriestextYes
template.events[].league.nightwhole number, at least 1Yes
template.events[].league.nightswhole number, at least 1Yes
template.events[].league.playerswhole number, 3 to 32Yes
template.events[].league.formatone of the options'fixtures' (default): each player plays one round-robin fixture. 'knockout': the line-up plays a knockout (rounds = its rounds) and earns points[position] (0 = winner, 1 = runner-up, 2 = semi-finalist…). Options: fixtures, knockout.
template.events[].league.pointslist, at least 1 item
Shape 2 (with series, playoffs, top)
template.events[].league.seriestextYes
template.events[].league.playoffsexactly trueYes
template.events[].league.topwhole number, 2 to 16Yes
template.events[].weekdaywhole number, 0 to 6Day of the week the event starts (0 = Sunday … 4 = Thursday … 6 = Saturday). Omitted = Saturday. The start is that weekday in week of month.
template.events[].wholeWeektrue or falsetrue: the event keeps to the real week (Monday to Sunday) of the month's week-th Saturday, even when that week begins in the month before, so a Monday-to-Saturday series has a week of its own for every week. Never before 1 January: there week 1 moves a week later and shares its days with week 2. Omitted: a weekday event of a week whose Monday falls in the month before moves a week later.
template.events[].endsInNewYearobjectFor an event that ends its season across New Year, such as a world championship: its final is on day January of the next year (with weekday, the first such weekday on or after that day), and the season ends after it. month and week then only set its place in the season's order.
template.events[].endsInNewYear.daywhole number, 1 to 31YesThe day in January of the event's last day.
template.events[].endsInNewYear.weekdaywhole number, 0 to 6Optional: 0 = Sunday to 6 = Saturday. The last day is the first such weekday on or after day.
template.events[].opensSeasontrue or falseThe event starts the day its season opens: the day after the last season's final across New Year, or 1 January without one. With weekday, the first such weekday on or after that day (Trial Week: the first Monday on or after 4 January). month and week only set its order.
template.events[].seriestext
template.events[].entryRouteslist, at least 1 itemHow the field is filled, route by route (see EntryRoute). Omitted = the tour tier's built-in selection. With routes the tier's Tour Card rules don't apply; restrict still does. The human gets in through ranking, winners, qualifier and players routes (never a simulated pool).
template.events[].entryRoutes[]one of several shapesYesOne way into an event's field. Routes run in order; each skips players who are already in, and none goes past the field size. See Calendar and entry rules.
When kind is "ranking"
template.events[].entryRoutes[].kindexactly "ranking"Yes
template.events[].entryRoutes[].rankingtextYesA ranking a route can read: "oom" (the two-year Order of Merit), "tour:<tourId>" (that tour's own table: two years when its rules say rolling2y, else this season) or "season:<tourId>" (this season's money on that tour). Pattern: ^(oom|tour:.+|season:.+|last:.+|phase:.+|stage:.+|average:.+|rolling:.+)$
template.events[].entryRoutes[].topwhole number, 1 to 256YesHow many players this route adds (the best N not already in).
template.events[].entryRoutes[].fromwhole number, at least 1Start at this rank (1 = top).
template.events[].entryRoutes[].withintrue or falseOnly look at ranks from..from+top-1 (players already in use up their place).
template.events[].entryRoutes[].cardHolderstrue or falseOnly Tour Card holders count (and are counted).
template.events[].entryRoutes[].maxAgewhole number, 1 to 99
template.events[].entryRoutes[].nationslist, at least 1 itemOnly players of these nationalities.
template.events[].entryRoutes[].seedtrue or false
template.events[].entryRoutes[].labeltext
When kind is "winners"
template.events[].entryRoutes[].kindexactly "winners"Yes
template.events[].entryRoutes[].eventslist, at least 1 itemYesEvent template ids whose winners get in.
template.events[].entryRoutes[].withinone of the options'season' = won this season (default); '12months' = in the 12 months before the event. Options: season, 12months.
template.events[].entryRoutes[].topwhole number, at least 1At most this many (most recent wins first).
template.events[].entryRoutes[].finaliststrue or false
template.events[].entryRoutes[].seedtrue or false
template.events[].entryRoutes[].labeltext
When kind is "qualifier"
template.events[].entryRoutes[].kindexactly "qualifier"Yes
template.events[].entryRoutes[].eventidYesA template with qualifies pointing at this event. Names a event record.
template.events[].entryRoutes[].seedtrue or false
template.events[].entryRoutes[].labeltext
When kind is "pool"
template.events[].entryRoutes[].kindexactly "pool"Yes
template.events[].entryRoutes[].poolone of the optionsYesWho a simulated route picks from. Options: cardHolders, nonCardHolders, women, youth, any.
template.events[].entryRoutes[].nationslist, at least 1 itemOnly players of these nationalities.
template.events[].entryRoutes[].countwhole number, 1 to 256Yes
template.events[].entryRoutes[].pickone of the optionsYesHow a simulated route picks players: best ranked, best level, or random weighted by level. Options: ranking, level, weighted.
template.events[].entryRoutes[].seedtrue or false
template.events[].entryRoutes[].labeltext
When kind is "players"
template.events[].entryRoutes[].kindexactly "players"Yes
template.events[].entryRoutes[].idslist, at least 1 itemYes
template.events[].entryRoutes[].seedtrue or false
template.events[].entryRoutes[].labeltext
When kind is "fill"
template.events[].entryRoutes[].kindexactly "fill"Yes
template.events[].entryRoutes[].poolone of the optionsYesWho a simulated route picks from. Options: cardHolders, nonCardHolders, women, youth, any.
template.events[].entryRoutes[].nationslist, at least 1 itemOnly players of these nationalities.
template.events[].entryRoutes[].pickone of the optionsYesHow a simulated route picks players: best ranked, best level, or random weighted by level. Options: ranking, level, weighted.
template.events[].entryRoutes[].scenePlayerstrue or falseAlso take players a scene created for its own residents' events, where the event's own rules allow them: a youth championship drawn from every player of its ages in the world, not only those on the travelling circuit.
template.events[].entryRoutes[].seedtrue or false
template.events[].entryRoutes[].labeltext
When kind is "form"
template.events[].entryRoutes[].kindexactly "form"Yes
template.events[].entryRoutes[].rankingtextYesA ranking a route can read: "oom" (the two-year Order of Merit), "tour:<tourId>" (that tour's own table: two years when its rules say rolling2y, else this season) or "season:<tourId>" (this season's money on that tour). Pattern: ^(oom|tour:.+|season:.+|last:.+|phase:.+|stage:.+|average:.+|rolling:.+)$
template.events[].entryRoutes[].poolwhole number, 1 to 1024Yes
template.events[].entryRoutes[].topwhole number, 1 to 256YesHow many players this route adds (the best N not already in).
template.events[].entryRoutes[].seedtrue or false
template.events[].entryRoutes[].labeltext
template.events[].qualifiesobjectThis event is a qualifier: play stops when count players remain, and they are in the event template's field this season (via its { kind: 'qualifier' } route). The draw is count sections of 2^rounds slots, each section's winner qualifying, so rounds = ceil(log2(fieldSize / count)): e.g. 128 for 32 → 2 rounds, 128 for 24 → 3.
template.events[].qualifies.eventidNamespaced id, e.g. "core.player.rory-calder" Names a event record.
template.events[].qualifies.eventslist, 1 to 16 items
template.events[].qualifies.countwhole number, 1 to 128Yes
template.events[].qualifies.earlyRoundstrue or falseMarks a staged event: these are the early rounds, and the event named in event is its final. The final's winner takes the title; the early rounds give none. An edition played in a season with no final counts as the whole event.
template.events[].entryStageslist, at least 1 itemStaggered entry: the best top of the field (seeds first, then Order of Merit) start in round round (1 = first round), the next stage's players in its round, and so on; everyone else starts in round 1.
template.events[].entryStages[].topwhole number, at least 1Yes
template.events[].entryStages[].roundwhole number, at least 2Yes
template.events[].restrictobjectWho may play. Replaces the tour tier's entry rules (Tour Card / Challenge status) with these checks; omitted fields don't restrict.
template.events[].restrict.genderone of the optionsOptions: m, f.
template.events[].restrict.maxAgewhole number, 10 to 99Oldest age allowed on the start date (23 = under-24s).
template.events[].restrict.minAgewhole number, 10 to 99
template.events[].restrict.pathwayAgewhole number, 10 to 99
template.events[].restrict.maxPerYearwhole number, 1 to 99
template.events[].restrict.maxPerSerieswhole number, 1 to 99
template.events[].restrict.nationslist, at least 1 item
template.events[].restrict.tourCardtrue or falsetrue = Tour Card holders only, false = non-holders only.
template.events[].restrict.cardHolderOncetext
template.events[].restrict.minLevelwhole number, 0 to 100
template.events[].restrict.maxLevelwhole number, 0 to 100
template.events[].restrict.bandwhole number, 1 to 50
template.events[].restrict.residentstrue or false
template.events[].restrict.unsignedtrue or false
template.events[].restrict.retiredtrue or false
template.events[].restrict.excludelist, 1 to 4 items
template.events[].restrict.exclude[].rankingtextYesA ranking a route can read: "oom" (the two-year Order of Merit), "tour:<tourId>" (that tour's own table: two years when its rules say rolling2y, else this season) or "season:<tourId>" (this season's money on that tour). Pattern: ^(oom|tour:.+|season:.+|last:.+|phase:.+|stage:.+|average:.+|rolling:.+)$
template.events[].restrict.exclude[].topwhole number, 1 to 256Yes
template.events[].whenBackgroundone of the optionsOptions: played, quick.
template.events[].discontinuedtrue or false
template.events[].resolveone of the optionsOptions: quick.
template.events[].drawShowtrue or falseThe draw is made on television: a story in the news when it is made, with a Watch the draw button that plays it as a 3D cut scene. Omitted = majors only.
template.events[].followsidAnother event's id: this one starts followsDays days after that event's start, at the same venue, whatever its own month and week say. A qualifier that follows its event moves with it every year. In a season without that event, this one falls back to its own date.
template.events[].followsDayswhole number, 0 to 28How many days after the followed event's start this one starts: 0 (the same day) to 28. On the same day the two do not clash.
template.events[].withinidAnother event's id: this one is played on one of that event's own days, at its hall (a youth final on the Circuit Finals' Sunday). A player in both plays both; the host's matches come first.
template.events[].drawone of the optionsOptions: eachRound, rumble.
template.events[].redrawFromwhole number, at least 2
template.events[].prizeDealobject
template.events[].prizeDeal.categorytextYes
template.events[].prizeDeal.seasonswhole number, 1 to 5Yes
template.events[].minAgewhole number, 0 to 99The youngest age on the start date. Replaces the tour's own minimum age; 0 = no limit whatever the tour says. Unlike restrict it leaves the tier's Tour Card rules in place.

Example#

A record from the base game’s data/scenes.json, shortened.

{
  "id": "core.scene.eng",
  "organisation": "core.org.albion",
  "words": {
    "level": "county",
    "Level": "County",
    "team": "county team",
    "committee": "county committee",
    "shirt": "county shirt",
    "taxOffice": "HMRC",
    "TaxOffice": "HMRC",
    "motorway": "motorway",
    "Motorway": "Motorway",
    "services": "motorway services",
    "Services": "Services",
    "smallDonation": "a quid",
    "smallWin": "Two quid",
    "chipShop": "chip shop",
    /* … 9 more fields */
  },
  "countries": [
    "ENG"
  ],
  "name": "English darts",
  "body": "Albion Darts Association",
  "description": "From the town league on a weeknight to the county circuit and the Prospects Tour.",
  "startable": true,
  "active": "always",
  "seasonStart": 1,
  "rungs": [
    {
      "role": "local",
      "tourId": "core.tour.pub",
      "entry": "residents"
    },
    {
      "role": "youth",
      "tourId": "core.tour.junior",
      "entry": "residents",
      "of": [
        "WAL"
      ]
    },
    {
      "role": "youth",
      "tourId": "core.tour.junior-school",
      "entry": "residents",
      "of": [
        "WAL"
      ]
    },
    /* … 2 more */
  ],
  "population": {
    "locals": 370,
    "youth": 84,
    "juniors": 110,
    "nationals": 0.85,
    "ceiling": 62
  },
  "logo": "assets/scenes/core.scene.eng.webp"
}

In your pack the record’s id starts with your pack’s id instead of core, unless you mean to replace this one.

Written for Darts Player Simulator 0.50.32. Built from the game's own schemas and its base pack.