Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Purple requires i18n., gray are for backwards compatibility.

RuleSection

07 Physical Fouls

Property

Type

Description

id

uuid

seasonId

id

2024-25

officeId

id

Hockey Canada

name

string

Physical Fouls

code

text

7

order

number

Display sort order

...

Property

Type

Description

id

uuid

seasonId

id

2024-25

officeId

id

Hockey Canada

name

string

Head Contact

code

string

7.6

sectionId

id

Physical Fouls

order

number

Display sort order

RuleOption

This is a container that represents the options the scorekeeper can select.

...

Property

Type

Description

id

uuid

seasonId

id

2024-25

officeId

id

Hockey Canada

ruleId

id

7.6 Head Contact (07 Physical Fouls)

name

string

Display name

description

string

Optional text to help describe the scenario this option is used for

parentId

id

Allows overriding a parent option by a lower office

order

number

Display sort order

RuleOptionMember

These are the effective infractions upon selecting the option. Order is significant and allows for sequencing penalties as consecutive (e.g., major = 0, GM = 1) or parallel (same order) for start times

...

When creating a penalty, you’re presented with a list of rules and then select an option. That option then results in one or many penalties that are linked to an infraction.

InfractionType

Minor, Major, Match, Misconduct, Game Misconduct, Gross Misconduct, Game Ejection

...

Typical examples are 3x Stick Infraction → Game Ejection or 2x Misconduct → Game Ejection.

InfractionAccumulation

This acts as a grouping that defines the count of the member infractions necessary and what the resulting infraction is.

Property

Type

Description

id

uuid

seasonId

id

2023-24

officeId

id

Hockey Canada

name

string

Stick Infractions

count

number

3

infractionId

id

Resulting infraction when accumulation reached

4.8 (b)

isReplacement

boolean

Whether the accumulation acts as a replacement infraction or not

e.g., 2nd yellow → Yellow/Red Card

InfractionAccumulationMember

These are the list of infractions that are part of the accumulation group. Order is not significant; any member infraction counts towards the accumulation group.

...

Yellow are new properties, red are deprecated.

GamePenalty

Instances of an infraction in a game are called penalties. This is a scoresheet artifact.

Property

Type

Description

id

uuid

gameId

id

teamId

id

participantId

id

servedById

id

isInjured

boolean

Necessary for suspensions

Time

gameTime

GameTime

Time of infraction

startTime

GameTime

Time the penalty started to be served

endTime

GameTime

Time the penalty ceased to be served

isEnded

boolean

Whether or not the penalty was ended

Infraction

infractionId

id

optionId

id

Link penalties part of the same option group when creating instead of trying to reverse them as we currently do

accumulationId

id

Link penalties that were created by an accumulation rule

Legacy infraction options (deprecated)

infraction

string

Infraction “id” which is something like “head-contact” in the rulebook

duration

string

Duration “id” which is something like “minor” in the rulebook

code

string

Infraction “code”

Penalties are consisted linked if they have the same participantId, gameTime and optionId or have an accumulationId that matches.

...

  • types

  • sections

  • rules

  • infractions

  • options

    • members

  • accumulations

    • members

  • lineupLimits / pitcherLimits

Penalty Management

Linked Penalties: Bundle of penalties created off of a choice. This includes accumulation penalties caused by the choice. (Ex. choice resulted in A, B, C → B, C would get returned)
Subsequent Penalties: Penalties after the first one in the linked penalties. (Ex. a choice resulted in A, B, C for penalties, passing penalty C → B, C would get returned)

Adding a penalty

Pick a choice → results in a bundle of linked penalties

Editing a penalty

First penalty in the linked penalties → Fully editable (can change choice, participant, start time, off time) and deletable.

  • Changing the choice will remove all linked penalties and create the new penalties based off of the new choice.

  • Changing the participant / start time / off time will change all the linked penalties

  • Deleting the penalty will automatically delete subsequent penalties also

Subsequent penalties in the linked penalties → Partially editable (can change only the off time) and deletable only if its an accumulation penalty.

  • Changing the off time will not affect the other penalties. (it might recalculate the offset of the subsequent penalties, to check)

  • Deleting an accumulation will only delete the one penalty