# Business rules — paymyfines-pdf-application

Evidence date: 2026-10-07.

Source: `git@bitbucket.org:overdrive/paymyfines-pdf-application.git`, `master` at `e55f1b6` (2021-12-13).

No domain rule is documented in this repository, and no application enforces one. The note below is a file-level fact that must not be promoted into product policy.

Pay My Fines rules that appear in `pmf-backend-ah` or `pmf-frontend-ah` are not rules of this repository. This tree does not cite those projects. Receipt, fee, payment, and PDF-delivery rules documented there stay in those documents.

## Domain behaviour

None. There is no fine, payment, notice, identity number, fee, receipt, invoice, or PDF layout rule in the committed file.

**Unknown / Requires Confirmation:** whether this repository was supposed to own any Pay My Fines or PDF rule. The name is the only clue, and the name is not a rule.

## Validation

No input validation exists. There is no form, request parser, schema, or document check.

## Permissions and access

No application role, login, or authorisation check exists.

Git history shows the only commit authored by Jaco Brits (`jaco@overdrive.co.za`). That is authorship metadata, not an access-control rule.

Who may use a future PDF application, and who may administer it, is **Unknown**.

## Workflows

No business workflow is implemented. See `prd.md` OBS-003.

## Rules that are not business rules

### BR-OBS-001 — Git ignore patterns are a stock example list

**Inferred** that the file was not written for this product: the header says the patterns are examples to customize, and the commit message is "Initial commit".

Patterns present in `.gitignore`:

| Pattern | Header context in the same file |
|---|---|
| `node_modules/`, `dist/` | "Node artifact files" (`dist/` is repeated under "Maven") |
| `*.class` | "Compiled Java class files" |
| `*.py[cod]` | "Compiled Python bytecode" |
| `*.log` | "Log files" |
| `*.jar` | "Package files" |
| `target/`, `dist/` | "Maven" |
| `.idea/` | "JetBrains IDE" |
| `TEST*.xml` | "Unit test reports" |
| `.DS_Store` | "Generated by MacOS" |
| `Thumbs.db` | "Generated by Windows" |
| `*.app`, `*.exe`, `*.war` | "Applications" |
| `*.mp4`, `*.tiff`, `*.avi`, `*.flv`, `*.mov`, `*.wmv` | "Large media files" |

**Not a business rule.** Presence of a pattern does not mean the product is a Node, Java, Python, Maven, or desktop application. No source of those kinds is committed.

The file does not ignore `sonar-project.properties`, `*.bat`, `.vs/`, `bin/`, or `obj/`.

## Edge cases

No application edge case is implemented. There is no invalid-input path, duplicate-action path, retry, timeout, empty state, or partial failure, because there is no action.

## Conflicts

No conflict between a written business rule and the code, because there is no written rule and no application code.

The open discrepancy is documentary, not behavioural: a 2026-09-28 scan-host listing names `sonar-project.properties` and `sonarqube_scan.bat`, and git at `e55f1b6` does not contain them. Until those files are read, they supply no rule. **Unknown / Requires Confirmation.**
