aboutsummaryrefslogtreecommitdiff
path: root/reqs.toml
blob: c05cf714f5c24c2db2609cd3f9d3bbc1ed48517e (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
# 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.async-api]
# Requirement type ('system' | 'user')
type = 'system'
# 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 public audio \gls{api} supports starting audio samples asynchronously
(i.e.~fire and forget).
'''
# Definition of done (user requirements only). If 'done' is a string, it is
# treated as LaTeX code (like description), if it is a list of strings, each
# item is treated as the ID of another requirement.
#done = 'When I feel like it'
#done = [ 'audio.handle', 'audio.stream-mix' ]
# 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.handle]
type = 'system'
priority = 'must'
description = '''
The public audio \gls{api} allows the game programmer to control (i.e.~play,
pause 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.
'''

[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.
'''