aboutsummaryrefslogtreecommitdiff
path: root/reqs.toml
blob: 6645ea40f235a9dbc534e684bb1e875fd49b5fca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# This is a TOML file containing all project requirements. The reqs2tex script
# can be used to generate the files necessary to compile requirements.tex and
# cross-reference the requirements from other documents.
#
# Note that TOML has a hash table structure, so keys used for defining
# requirement properties cannot be used for requirement IDs. The properties are:
# label, type, id, index, deleted, done, description, priority

# This is the requirement cross-reference ID. Requirements can be
# (cross-)referenced from LaTeX by prefixing this ID with `req:` and
# substituting dots for colons (i.e. this requirement is referenced as
# \cref{req:audio:async-api}).
[audio]
# Requirement type ('system' | 'user')
type = 'user'
# MoSCoW priority ('must' | 'should' | 'could' | 'will not')
priority = 'must'
# Requirement body. Supports LaTeX formatting. (tip: use single quotes so
# backslash doesn't act as an escape character)
description = '''
The engine allows the game programmer to easily start, pause and stop
background music, while simultaniously playing sound effects.
'''
# Definition of done. If 'done' is a string, it is treated as LaTeX code, if it
# is a list of strings, each item is treated as the ID of another requirement,
# and the references are checked before LaTeX runs.
done = [
	'audio.async-api',
	'audio.handle',
	'audio.stream-mix',
	'audio.volume',
]
#done = 'When I feel like it'
# Requirements that are no longer applicable should set `deleted` to `true`.
# This will make sure the requirements are numbered consistently across
# different document revisions.
#deleted = true

[audio.async-api]
type = 'system'
priority = 'must'
description = '''
The public audio \gls{api} supports starting audio samples asynchronously
(i.e.~fire and forget).
'''

[audio.handle]
type = 'system'
priority = 'must'
description = '''
The public audio \gls{api} allows the game programmer to control (i.e.~play,
pause, resume and stop) audio samples after they are created/initialized.
'''

[audio.stream-mix]
type = 'system'
priority = 'must'
description = '''
The audio system supports playing multiple audio streams simultaniously.
'''

[audio.volume]
type = 'system'
priority = 'must'
description = '''
The public audio \gls{api} allows the game programmer to control the volume of
audio samples.
'''

[aux.license]
type = 'system'
priority = 'must'
description = '''
External libraries must have a license that is MIT-compatible, or one that
allows linking against MIT code.
'''