Files
Alby96andClaude Opus 5 aa91b457ed Give the map the whole screen and move the credits into settings
Drops the app bar, moves settings onto the map with the other controls, and
takes the attribution bar off the main screen.

The app bar held only the app name — which the launcher already shows — and one
action, so removing it hands its height to the map rather than leaving an empty
strip. The settings button joins search and recentre in the column over the
map, where the rest of the controls that act on the map already live.

The attribution needed checking before it could move, because it is a licence
obligation rather than a layout choice. The OSMF guidelines settle it: for a
browsable map the credit does not have to be permanently visible, provided
"the user must still be able to find the licence information if they look for
it, for example from an '(i)' button in the corner of the map or an 'About'
option in a menu". Map to settings to "Fonti e licenze" is exactly that, and
MapLibre's own (i) control now sits in the map's top-right corner as a second
route — it had been landing underneath the new button column.

Two things had to follow the bar rather than disappear with it. The radar
manifest carries its own credit for the frames on screen, set by whoever
published them and absent from the region config, so the Sources screen now
shows it alongside the configured attributions. And the settings entry that
leads there carries a subtitle saying what it holds, because "Fonti e licenze"
alone does not tell a reader that this is where the licence information went.

settings_screen_test asserts that entry exists and opens the screen. Removing
it would be a licence breach, so it should fail the build rather than ship
quietly.

Verified on the emulator: no title bar, the map runs to the top with the demo
notice above it, the three controls stack bottom-right without colliding with
the (i), and settings shows the sources entry with its subtitle.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 22:21:50 +02:00

100 lines
5.4 KiB
Markdown

# Licenses and attribution obligations
Nuvolari redistributes third-party data. Every obligation below is binding: the
Sources screen in the app must satisfy all of them, and none of them may be dropped
to save screen space.
## Summary
| Data | License | Mandatory credit | Notes |
|---|---|---|---|
| Radar-DPC rasters | CC BY-SA | "Radar-DPC" | **Share-alike propagates to our frames** |
| ARPA Piemonte data | CC BY 4.0, commercial OK | "Fonte: Arpa Piemonte - www.arpa.piemonte.it" | Radar volumes: licence not repeated on their page, access by email |
| ARPA Piemonte alerts | CC BY 4.0 (site notice) | as above, + link to the official bulletin | Levels republished verbatim |
| OpenStreetMap data | ODbL | "© OpenStreetMap contributors" | Must stay visible on the map |
| OpenMapTiles schema | BSD 3-Clause | "© OpenMapTiles" | Must stay visible on the map |
| OpenFreeMap service | MIT | "OpenFreeMap" — optional | Listed on the Sources screen |
| Istat municipality boundaries | CC BY 4.0 | "Istat" | Bundled municipality list, commercial use permitted |
## Share-alike is the constraint that shapes the backend
The Radar-DPC rasters are **CC BY-SA**. The PNG frames the worker produces — cropped,
reprojected, colourised — are a derived product, so they inherit CC BY-SA. Practical
consequences:
- The published frames and `manifest.json` are CC BY-SA and must be labelled as such.
- We cannot relicense them, and we cannot restrict their reuse.
- The share-alike obligation covers the **data**, not the app's source code or UI.
The manifest carries its own `attribution` string for exactly this reason: the credit
travels with the frames rather than being remembered at render time, and the app
displays whatever the publisher of those frames says to display.
## ARPA Piemonte: CC BY 4.0, stated in the legal notice
ARPA's legal notice at <https://www.arpa.piemonte.it/note-legali> releases environmental
and open data under **CC BY 4.0**, explicitly permitting commercial use, and requires the
credit *"Fonte: Arpa Piemonte - www.arpa.piemonte.it"*. Logos, institutional emblems,
registered trademarks and third-party content are excluded.
Both ARPA REST APIs — `api_realtime` and Meteoweb — link that notice from their OpenAPI
`description`, so anything served by them is covered without further correspondence.
The **radar volumes** are the one gap: their open-data page says only *gratuiti* and does
not repeat the licence, and the real-time access link is issued by email. Ask ARPA to
confirm both in the same message. Until then the radar adapter stays disabled — see
[data-sources.md](data-sources.md) section 2.
The credit string ARPA asks for is the full *"Fonte: Arpa Piemonte -
www.arpa.piemonte.it"*, not the bare name currently in the region config. Adopt the full
form the moment any ARPA-sourced data is actually displayed.
## Where the credits live, and why that is enough
The OpenFreeMap style JSON has no `attribution` field, so MapLibre displays nothing on
its own. The app therefore renders the credits itself, on the **Sources screen**, reached
from the settings button on the map.
There is deliberately no permanent credit line over the map. The
[OSMF attribution guidelines](https://osmfoundation.org/wiki/Licence/Attribution_Guidelines)
allow this for a browsable map: attribution may be collapsed or dismissed provided that
*"the user must still be able to find the licence information if they look for it, for
example from an '(i)' button in the corner of the map or an 'About' option in a menu"*.
The route is map → settings → **Fonti e licenze**, two taps and clearly labelled, and
MapLibre's own `(i)` control sits in the map's top-right corner as well.
**This is a licence obligation, not a layout preference.** Do not bury the Sources entry
deeper, and do not remove its subtitle saying what it contains. A test in
`settings_screen_test.dart` asserts the entry exists and opens the screen, so removing it
fails the build rather than shipping quietly.
The Sources screen lists every credit the region config declares, **plus** the credit the
radar manifest carries for the frames currently on screen — that one is set by whoever
published the frames and is not in the config, so it would otherwise have been lost when
the on-map bar was removed.
## Advertising, and why it still matters here
The app currently carries **no advertising**, so it is not a commercial product today.
Ads are a plausible future, though, and a source adopted now on non-commercial terms
would have to be ripped out then. Prefer sources that permit commercial use.
This is why **Open-Meteo's free tier** and **Blitzortung** remain listed as excluded even
though the features that would have used them are out of scope: both are
non-commercial-only, and neither should be reached for on the grounds that there are no
ads at the moment.
## Naming and independence
The app must never appear to be an official ARPA or Protezione Civile product:
- no ARPA/DPC logos, coats of arms or institutional branding;
- never the word "ufficiale" applied to the app itself (the *bulletin* is official —
the *app* is not);
- the Sources screen carries an explicit disclaimer that Nuvolari is an independent
app, not affiliated with, endorsed by, or operated by ARPA Piemonte or the
Dipartimento della Protezione Civile;
- for civil-protection purposes the official channels always prevail, and the app
says so next to every alert.