# BASTION

## Backup Autonomous Secure Text Infrastructure Over Networkless Environments

**Niezależna komunikacja rodzinna w przypadku utraty infrastruktury telekomunikacyjnej**

---

## 1. Cel projektu

BASTION jest systemem awaryjnej komunikacji tekstowej przeznaczonym przede wszystkim dla rodziny lub niewielkiej, zaufanej grupy osób.

System ma umożliwić przekazywanie krótkich i istotnych wiadomości w sytuacji, w której normalna infrastruktura telekomunikacyjna przestała działać albo nie można na niej polegać.

Dotyczy to w szczególności sytuacji takich jak:

- działania wojenne,
- długotrwała awaria energetyczna,
- przeciążenie lub uszkodzenie sieci komórkowych,
- brak dostępu do Internetu,
- ewakuacja,
- rozdzielenie członków rodziny,
- przemieszczanie się pomiędzy obszarami pozbawionymi łączności.

BASTION nie ma zastępować zwykłych komunikatorów.

Jego zadaniem jest umożliwienie przekazania informacji wtedy, gdy zwykłe środki komunikacji przestały być dostępne.

---

# 2. Podstawowe założenie

BASTION wychodzi z założenia, że podczas poważnego kryzysu nie można zakładać istnienia działającej infrastruktury.

System nie może wymagać do podstawowego działania:

- Internetu,
- sieci komórkowej,
- serwerów BASTION,
- usług chmurowych,
- kont użytkowników,
- logowania przez zewnętrzne usługi,
- SMS,
- stałych punktów przekaźnikowych należących do BASTION.

Podstawowym zasobem systemu są urządzenia znajdujące się przy ludziach.

Telefon, urządzenie radiowe oraz przemieszczający się człowiek tworzą razem element sieci.

W praktyce oznacza to, że użytkownicy BASTION są jednocześnie jego uczestnikami i nośnikami komunikacji.

---

# 3. Najważniejszy scenariusz

Rodzina zostaje rozdzielona.

Przykładowo część rodziny znajduje się w jednym mieście, a inna osoba zostaje przemieszczona o kilkadziesiąt lub ponad sto kilometrów.

Nie działa telefonia komórkowa i Internet.

Pomiędzy nimi nie istnieje bezpośrednie połączenie radiowe.

BASTION powinien mimo tego próbować przenieść wiadomość:

> „Jesteśmy u babci. Wszyscy bezpieczni.”

Nie zakładamy, że nastąpi to natychmiast.

Wiadomość może potrzebować minut, godzin, a w trudnych warunkach nawet kilku dni.

Podstawowym celem jest:

**dostarczyć istotną informację mimo braku ciągłej drogi komunikacyjnej pomiędzy nadawcą i odbiorcą.**

---

# 4. Komunikacja nie musi odbywać się w czasie rzeczywistym

BASTION nie jest klasycznym komunikatorem.

W zwykłym komunikatorze zakładamy:

**nadawca → sieć → odbiorca**

i oczekujemy odpowiedzi niemal natychmiast.

BASTION działa według innego modelu:

**zapisz → przenieś → przekaż dalej → ponownie przenieś → dostarcz**

Jeżeli w danej chwili nie istnieje droga do odbiorcy, wiadomość nie jest uznawana za straconą.

Pozostaje przechowywana i czeka na następną możliwość przekazania.

To jedna z fundamentalnych cech projektu.

---

# 5. Człowiek jest częścią sieci

BASTION wykorzystuje fakt, że ludzie się przemieszczają.

Członek rodziny może:

- jechać samochodem,
- podróżować autobusem,
- podróżować pociągiem,
- przechodzić pomiędzy miejscowościami,
- przemieszczać się pomiędzy grupami ludzi.

Wraz z nim przemieszczają się zapisane wiadomości.

Dzięki temu człowiek może fizycznie przenieść informację pomiędzy dwoma obszarami, które nie mają bezpośredniego połączenia.

Możliwy jest więc scenariusz:

**obszar A → człowiek → kilkadziesiąt kilometrów podróży → obszar B**

BASTION wykorzystuje taką mobilność automatycznie.

Użytkownik nie musi wiedzieć, jakie wiadomości jego urządzenie przenosi dla innych osób.

---

# 6. Dwa sposoby przekazywania informacji

BASTION wykorzystuje dwa uzupełniające się mechanizmy komunikacji.

Pierwszym jest komunikacja radiowa Meshtastic/LoRa.

Pozwala ona urządzeniom komunikować się na większą odległość bez korzystania z infrastruktury operatora komórkowego.

Drugim jest Bluetooth.

Bluetooth służy przede wszystkim do przekazywania wiadomości podczas fizycznych spotkań urządzeń znajdujących się blisko siebie.

Te mechanizmy nie konkurują ze sobą.

BASTION wykorzystuje wszystkie dostępne w danym momencie możliwości.

Jeżeli dostępne jest radio i Bluetooth, system może korzystać z obu.

Jeżeli dostępny jest tylko jeden z nich, BASTION nadal działa.

Jeżeli chwilowo nie jest dostępny żaden, wiadomości pozostają zapisane i oczekują na następną możliwość transmisji.

---

# 7. BASTION nie wymaga ciągłej sieci

Jedną z najważniejszych różnic pomiędzy BASTION a klasycznymi sieciami jest brak wymagania istnienia pełnej trasy pomiędzy nadawcą i odbiorcą.

Może istnieć:

**wyspa komunikacyjna A**

oraz wiele kilometrów dalej:

**wyspa komunikacyjna B**

bez jakiegokolwiek bezpośredniego połączenia pomiędzy nimi.

Jeżeli człowiek korzystający z BASTION przemieści się pomiędzy tymi obszarami, może przenieść wiadomości.

Dlatego sieć może powstawać i znikać dynamicznie.

BASTION wykorzystuje zarówno urządzenia radiowe, jak i fizyczne przemieszczanie ludzi.

---

# 8. BASTION Kurier

Nie każdy uczestnik systemu musi posiadać urządzenie Meshtastic.

Dlatego projekt przewiduje aplikację **BASTION Kurier**.

Kurier może posiadać wyłącznie telefon.

Jego zadaniem jest:

**odebrać → zapisać → fizycznie przenieść → przekazać dalej**

wiadomości BASTION.

Przykładowo kierowca samochodu może przejechać przez miejscowość A, znaleźć się przez chwilę w pobliżu użytkownika BASTION, przejąć wiadomość, przejechać 80 kilometrów i później znaleźć się w pobliżu kolejnego uczestnika systemu.

Telefon kierowcy staje się w ten sposób fizycznym nośnikiem informacji.

Kurier nie musi znać treści przenoszonych wiadomości.

Nie musi również podejmować decyzji dotyczących ich tras.

System wykonuje te operacje automatycznie.

---

# 9. Każdy BASTION pomaga innym

BASTION opiera się na współpracy urządzeń.

Urządzenie użytkownika nie zajmuje się wyłącznie jego własnymi wiadomościami.

Jeżeli może pomóc przenieść wiadomość innego użytkownika, powinno to zrobić automatycznie w ramach zasad systemu.

Użytkownik nie wybiera:

> „swoje wiadomości przekazuję, cudzych nie”.

Współdzielenie możliwości komunikacyjnych jest podstawową zasadą BASTION.

Im więcej przemieszczających się użytkowników uczestniczy w systemie, tym więcej potencjalnych dróg może powstać pomiędzy rozdzielonymi osobami.

---

# 10. Publiczne sieci Meshtastic

BASTION może korzystać również z istniejących urządzeń i sieci Meshtastic znajdujących się w otoczeniu.

Nie traktuje ich jednak jako gwarantowanej infrastruktury.

Obce urządzenie może:

- znajdować się poza zasięgiem,
- być wyłączone,
- mieć inną konfigurację,
- nie przekazać wiadomości,
- zniknąć z sieci.

Dlatego publiczna infrastruktura Meshtastic jest dla BASTION dodatkową możliwością transportową, a nie fundamentem niezawodności systemu.

BASTION powinien wykorzystywać dostępne okazje, ale nie może zakładać ich istnienia.

---

# 11. Wiadomość może istnieć w wielu miejscach

BASTION nie próbuje utrzymywać tylko jednej kopii wiadomości.

Jeżeli pojawia się kilka dobrych możliwości dalszego przeniesienia informacji, system może wykorzystać kilka z nich.

Przykładowo tę samą wiadomość mogą zabrać dwa różne samochody jadące w różnych kierunkach.

BASTION nie musi wiedzieć, który z nich okaże się właściwy.

Celem jest zwiększenie szansy, że przynajmniej jedna kopia znajdzie drogę do odbiorcy.

Jednocześnie urządzenia rozpoznają wiadomości, które już wcześniej widziały, dzięki czemu wielokrotne kopie nie powinny powodować wielokrotnego wyświetlania tej samej wiadomości użytkownikowi.

---

# 12. Dostarczenie jest niezależne od drogi

BASTION nie wymaga, żeby wiadomość od początku do końca podróżowała jednym sposobem.

Może przykładowo przejść:

**radio → Bluetooth → samochód → Bluetooth → radio → odbiorca**

albo:

**radio → kilka urządzeń → odbiorca**

albo:

**Bluetooth → Kurier → Bluetooth → odbiorca**

Dla użytkownika droga nie ma znaczenia.

Liczy się to, czy wiadomość ostatecznie dotarła do właściwego odbiorcy.

---

# 13. Potwierdzenie dostarczenia

BASTION rozróżnia próbę wysłania od rzeczywistego dostarczenia.

Samo przekazanie wiadomości do radia nie oznacza:

**DOSTARCZONO**

Podobnie przekazanie jej innemu uczestnikowi sieci nie oznacza jeszcze, że dotarła do adresata.

Status:

**DOSTARCZONO ✓**

pojawia się dopiero wtedy, gdy system odbiorcy rzeczywiście otrzyma wiadomość, zaakceptuje ją i wygenerowane przez niego potwierdzenie wróci do nadawcy.

Potwierdzenie również może wracać przez wiele urządzeń i z dużym opóźnieniem.

---

# 14. Brak potwierdzenia nie oznacza niedostarczenia

Jest to bardzo ważna zasada BASTION.

Możliwa jest sytuacja:

**Tata → wiadomość → Ania**

Wiadomość dociera do Ani.

Ania ją otrzymuje.

Jednak potwierdzenie nie znajduje drogi powrotnej do Taty.

Tata nie może wtedy stwierdzić, że wiadomość nie dotarła.

Dlatego BASTION nie pokazuje fałszywego:

**NIEDOSTARCZONO**

System może stwierdzić:

**DOSTARCZONO**

albo:

**BRAK POTWIERDZENIA**

Brak potwierdzenia oznacza dokładnie to, co mówi nazwa: system nie posiada dowodu dostarczenia.

---

# 15. BASTION nie udaje komunikatora czasu rzeczywistego

Interfejs nie powinien sugerować możliwości, których system rzeczywiście nie posiada.

Dlatego BASTION nie powinien pokazywać członka rodziny jako:

**ONLINE**

tylko dlatego, że wcześniej wykryto jego urządzenie.

W systemie działającym na dużych odległościach i z opóźnionym transportem taka informacja byłaby potencjalnie fałszywa.

BASTION powinien pokazywać fakty, a nie przewidywania.

---

# 16. Znaczenie czasu utworzenia wiadomości

W systemie BASTION wiadomość może dotrzeć znacznie później niż została napisana.

Dlatego odbiorca powinien wiedzieć nie tylko, kiedy telefon ją otrzymał, ale również kiedy została utworzona.

Przykład:

> Jesteśmy w domu. Wszyscy cali.

**Utworzono: poniedziałek 14:32**
**Odebrano: środa 09:17**

Ta informacja pozwala człowiekowi właściwie interpretować komunikat.

BASTION może zwrócić uwagę, że wiadomość została utworzona dawno temu, ale nie powinien sam decydować, czy jej treść jest nadal aktualna.

---

# 17. Wiadomości mają ograniczony czas życia

BASTION nie powinien przenosić wiadomości bez końca.

Po określonym czasie komunikat przestaje być aktywnie propagowany.

Dla podstawowego profilu użytkownika obecnym założeniem projektowym jest około:

**72 godzin**

od utworzenia wiadomości.

Wartość ta jest jeszcze przedmiotem testów, ale trzy doby są obecnie preferowanym kompromisem pomiędzy:

- możliwością znalezienia fizycznej drogi przez rozproszoną sieć,
- wartością operacyjną wiadomości,
- wykorzystaniem ograniczonych zasobów komunikacyjnych.

Zwykły użytkownik nie wybiera tego parametru.

---

# 18. BASTION jest komunikatorem kryzysowym, nie czatem

To jedno z fundamentalnych założeń produktu.

BASTION nie jest przeznaczony do prowadzenia zwykłych rozmów.

Każda dodatkowa wiadomość wykorzystuje zasoby, które mogą być potrzebne komuś innemu do przekazania informacji istotnej dla bezpieczeństwa.

Dlatego system powinien promować zasadę:

**jedna krótka, kompletna wiadomość zamiast serii fragmentów.**

Zamiast:

> Jesteśmy

> już

> u babci

> wszystko

> OK

użytkownik powinien wysłać:

> Jesteśmy u babci. Wszyscy OK.

---

# 19. Aplikacja aktywnie ogranicza „czatowanie”

BASTION User nie pozostawia tej zasady wyłącznie dobrej woli użytkownika.

Po wysłaniu wiadomości przycisk wysyłania jest przez krótki czas niedostępny.

Obecne założenie to:

**10 sekund pomiędzy kolejnymi wiadomościami tworzonymi przez użytkownika.**

Aplikacja pokazuje odliczanie do możliwości wysłania następnego komunikatu.

Nie wpływa to na pracę systemu w tle. W tym czasie BASTION nadal może odbierać, przenosić i przekazywać wiadomości innych osób.

---

# 20. Bardzo krótkie wiadomości

BASTION dodatkowo wykrywa serię bardzo krótkich wiadomości.

Pojedynczy komunikat:

> OK

może być całkowicie uzasadniony.

Dlatego system go nie zakazuje.

Może jednak zapytać:

> „Wiadomość jest bardzo krótka. Czy na pewno chcesz ją wysłać?”

Jeżeli użytkownik zaczyna wysyłać wiele bardzo krótkich wiadomości jedna po drugiej, system może stopniowo wydłużać czas oczekiwania przed następnym wysłaniem.

Celem nie jest ocena treści.

Celem jest ograniczenie zachowania charakterystycznego dla zwykłego czatu.

---

# 21. Ograniczenie liczby własnych wiadomości

Sam odstęp pomiędzy wiadomościami nie chroni przed wielogodzinnym generowaniem zbędnego ruchu.

Dlatego BASTION User będzie również posiadał ograniczenie liczby nowych wiadomości tworzonych przez użytkownika w dłuższym okresie.

Dokładna wartość pozostaje przedmiotem testów.

Obecnie badanym punktem odniesienia jest około:

**75 własnych komunikatów w ciągu kolejnych 24 godzin.**

Limit ma być wystarczająco wysoki, aby nie blokować człowieka podczas intensywnej ewakuacji lub szybko zmieniającej się sytuacji, ale jednocześnie uniemożliwić używanie BASTION przez wiele godzin jak zwykłego komunikatora.

Ograniczenie dotyczy własnych nowych wiadomości.

Nie ogranicza automatycznego przekazywania wiadomości innych ludzi.

---

# 22. Krótkie gotowe komunikaty

BASTION powinien oferować zestaw przygotowanych komunikatów kryzysowych.

Przykładowo:

**JESTEŚMY BEZPIECZNI**

**POTRZEBUJEMY POMOCY**

**ZOSTAŃ NA MIEJSCU**

**JEDZIEMY DO USTALONEGO MIEJSCA**

**ODEZWIJ SIĘ**

Ich zadaniem jest umożliwienie bardzo szybkiego przekazania podstawowej informacji bez konieczności pisania dłuższego tekstu.

Gotowy komunikat nadal jest normalną wiadomością BASTION i podlega ogólnym zasadom wykorzystania systemu.

---

# 23. Prostota użytkownika

BASTION User powinien ukrywać większość decyzji technicznych.

Użytkownik powinien przede wszystkim:

1. wybrać członka rodziny,
2. napisać krótki komunikat,
3. nacisnąć „Wyślij”.

Nie powinien decydować o:

- sposobie transmisji,
- liczbie prób,
- trasie wiadomości,
- parametrach radiowych,
- czasie życia wiadomości,
- sposobie jej dalszego przekazywania.

System ma sam stosować konfigurację uznaną podczas projektowania i testów za najlepszą dla podstawowego zastosowania BASTION.

---

# 24. Kontakty rodzinne

BASTION jest projektowany przede wszystkim wokół niewielkiej grupy znanych sobie osób.

Dodawanie kontaktów odbywa się lokalnie, gdy osoby znajdują się fizycznie obok siebie.

Nie jest potrzebny:

- numer telefonu,
- adres e-mail,
- konto internetowe,
- serwer katalogowy.

Użytkownicy wzajemnie skanują informacje wyświetlane przez swoje telefony.

Po prawidłowym zakończeniu procedury urządzenia mogą bezpiecznie komunikować się ze sobą.

Jeżeli procedura się nie powiedzie, nie próbujemy skomplikowanego odzyskiwania niedokończonej operacji.

Użytkownicy po prostu wykonują ją ponownie.

---

# 25. Nowy telefon oznacza nową tożsamość

BASTION nie migruje swojej tożsamości bezpieczeństwa pomiędzy telefonami.

Jeżeli użytkownik:

- kupi nowy telefon,
- zgubi poprzedni,
- zniszczy urządzenie,
- utraci do niego dostęp,

nowy telefon otrzymuje nową tożsamość BASTION.

Następnie użytkownik ponownie ustanawia relacje z członkami rodziny.

Nie kopiujemy starej tożsamości tylko po to, aby nowy telefon udawał poprzednie urządzenie.

---

# 26. Człowiek i urządzenie to nie to samo

Dla użytkownika:

**Ania pozostaje Anią.**

Wewnętrznie jednak Ania może w czasie korzystania z systemu posiadać kolejne urządzenia.

Dlatego historia kontaktu może wyglądać logicznie jak jedna rozmowa:

**Ania**

— wiadomości ze starego urządzenia —

**zmiana urządzenia**

— wiadomości z nowego urządzenia —

Pozwala to zachować ludzką ciągłość kontaktu bez udawania, że nowe urządzenie posiada tę samą tożsamość co stare.

---

# 27. Wiadomości skierowane do starego urządzenia

Jeżeli wiadomość została wcześniej wysłana do starego telefonu Ani i nadal znajduje się gdzieś w sieci, nie zostaje automatycznie przekierowana na jej nową tożsamość.

Może więc nigdy nie zostać odebrana.

To świadomy kompromis.

BASTION nie tworzy automatycznych przekierowań pomiędzy starymi i nowymi tożsamościami, ponieważ mogłoby to naruszyć prostą i jednoznaczną granicę zaufania.

---

# 28. Bezpieczeństwo ma być niewidoczne dla użytkownika

BASTION powinien chronić treść komunikacji bez wymagania od użytkowników zarządzania hasłami kryptograficznymi, ręcznego przepisywania kluczy czy rozumienia mechanizmów bezpieczeństwa.

Użytkownik zna:

- nazwę kontaktu,
- jego obecność w rodzinie,
- stan wiadomości.

Nie powinien na co dzień pracować z kluczami i parametrami kryptograficznymi.

System bezpieczeństwa znajduje się pod interfejsem aplikacji.

---

# 29. Pośrednicy nie muszą znać treści

Wiadomość może przechodzić przez urządzenia należące do innych ludzi.

Dotyczy to również Kurierów.

BASTION został zaprojektowany tak, aby transport wiadomości nie wymagał ujawniania jej treści urządzeniom pośredniczącym.

Pośrednik ma pomóc przenieść dane.

Nie musi wiedzieć, co użytkownicy napisali.

---

# 30. Automatyczne potwierdzenie

Odbiorca nie musi naciskać:

**POTWIERDŹ ODBIÓR**

Jeżeli jego BASTION prawidłowo otrzyma i zaakceptuje wiadomość, system automatycznie przygotowuje potwierdzenie.

Dzięki temu potwierdzenie może rozpocząć drogę powrotną nawet wtedy, gdy człowiek jeszcze nie otworzył aplikacji.

BASTION rozróżnia przy tym:

**dostarczono do urządzenia**

od:

**człowiek przeczytał**

W pierwszej wersji projektu nie planujemy statusu „PRZECZYTANO”.

---

# 31. Odporność na utratę chwilowej łączności

BASTION nie powinien przestawać działać tylko dlatego, że urządzenie Meshtastic zostało chwilowo rozłączone.

Analogicznie utrata Bluetooth nie powinna zatrzymywać komunikacji radiowej.

System wykorzystuje aktualnie dostępne możliwości.

Może więc znajdować się w jednym z czterech naturalnych stanów:

**radio + Bluetooth**
pełne możliwości transportowe

**tylko radio**
komunikacja radiowa działa

**tylko Bluetooth**
BASTION nadal może wymieniać wiadomości z napotkanymi uczestnikami i Kurierami

**brak obu**
wiadomości pozostają zapisane i czekają

Brak jednego transportu nie oznacza awarii całego BASTION.

---

# 32. BASTION działa w tle

Użytkownik nie powinien przez cały czas obserwować aplikacji.

BASTION ma wykonywać swoją pracę automatycznie:

- odbierać wiadomości,
- zapisywać je,
- wykrywać możliwość ich dalszego przekazania,
- przekazywać je,
- odbierać potwierdzenia,
- przenosić wiadomości innych użytkowników.

Telefon znajdujący się w kieszeni nadal jest elementem sieci.

---

# 33. Energia jest zasobem krytycznym

W sytuacji kryzysowej energia telefonu jest równie ważna jak możliwość komunikacji.

Dlatego zwykły BASTION może ograniczać dodatkowe mechanizmy komunikacji, kiedy poziom baterii staje się niski.

Obecne założenie dla Bluetooth zakłada automatyczne zarządzanie jego wykorzystaniem zależnie od poziomu baterii.

Użytkownik nie musi ręcznie pilnować tej funkcji.

BASTION Kurier jest wyjątkiem: jego podstawową funkcją jest właśnie przenoszenie wiadomości przez Bluetooth, dlatego aplikacja Kuriera nie powinna dobrowolnie ograniczać tej funkcji według tych samych zasad co zwykły użytkownik.

---

# 34. Brak obietnicy natychmiastowego dostarczenia

BASTION nie może obiecywać:

> „wiadomość dotrze”.

Fizyki nie można zagwarantować programem.

Jeżeli przez trzy dni żadne urządzenie nie stworzy drogi pomiędzy dwoma rozdzielonymi obszarami, aplikacja nie może tej drogi stworzyć sama.

BASTION ma natomiast maksymalnie wykorzystać pojawiające się możliwości.

Dlatego projekt nie opiera się na obietnicy natychmiastowej komunikacji.

Opiera się na zasadzie:

**nie porzucaj wiadomości tylko dlatego, że w tej chwili nie istnieje droga do odbiorcy.**

---

# 35. Brak przewidywania czasu dostarczenia

BASTION nie powinien pokazywać informacji typu:

**„dotrze za około 2 godziny”**

Nie posiada danych pozwalających wiarygodnie dokonać takiej prognozy.

Następny Kurier może pojawić się za minutę, jutro albo wcale.

System powinien pokazywać rzeczywisty stan wiadomości, a nie pozornie precyzyjne prognozy.

---

# 36. Prostota jako element niezawodności

BASTION ma działać w sytuacji, w której użytkownik może być:

- zestresowany,
- zmęczony,
- przemieszczany,
- pozbawiony Internetu,
- bez możliwości przeczytania instrukcji,
- bez pomocy technicznej.

Dlatego prostota interfejsu nie jest wyłącznie kwestią estetyki.

Jest elementem niezawodności systemu.

Normalny użytkownik powinien móc korzystać z BASTION bez wiedzy o sieciach radiowych, routingu czy kryptografii.

---

# 37. Projekt nie próbuje zastąpić wszystkiego

BASTION świadomie nie próbuje być:

- komunikatorem społecznościowym,
- forum,
- siecią społecznościową,
- systemem rozmów głosowych,
- platformą multimedialną,
- zamiennikiem Internetu.

Podstawowym nośnikiem informacji jest krótki tekst.

Ograniczenie to jest celowe.

Im mniej danych potrzeba do przekazania informacji, tym większa szansa, że uda się ją przenieść przez bardzo ograniczoną i niestabilną sieć.

---

# 38. Filozofia projektu

BASTION można sprowadzić do kilku podstawowych zasad:

**Nie zakładaj istnienia infrastruktury.**

**Nie zakładaj ciągłego połączenia.**

**Nie wyrzucaj wiadomości tylko dlatego, że teraz nie ma drogi.**

**Wykorzystuj każdą dostępną możliwość transportu.**

**Pozwól ludziom fizycznie przenosić wiadomości.**

**Twórz wiele szans na dostarczenie zamiast próbować przewidzieć jedną idealną trasę.**

**Nie pokazuj użytkownikowi informacji, których system naprawdę nie wie.**

**Chroń ograniczoną przepustowość przed niepotrzebnym ruchem.**

**Jedna kompletna wiadomość jest lepsza niż pięć fragmentów.**

**Techniczna złożoność należy do aplikacji, nie do użytkownika.**

---

# 39. Docelowe doświadczenie użytkownika

W sytuacji kryzysowej członek rodziny powinien móc otworzyć BASTION, wybrać:

**Ania**

napisać:

> Jesteśmy u babci w Poznaniu. Wszyscy bezpieczni.

i nacisnąć:

**WYŚLIJ**

Od tego momentu użytkownik nie powinien zajmować się trasą wiadomości.

BASTION zapisuje ją i wykorzystuje dostępne możliwości komunikacji.

Wiadomość może zostać przekazana przez radio.

Może zostać zabrana przez przejeżdżającego Kuriera.

Może przez wiele godzin znajdować się na czyimś telefonie.

Może zostać przeniesiona o kilkadziesiąt kilometrów.

Może następnie ponownie trafić do sieci radiowej.

Jeżeli ostatecznie dotrze do Ani, jej BASTION ją odbierze i automatycznie rozpocznie drogę potwierdzenia.

Jeżeli potwierdzenie wróci do nadawcy, zobaczy on:

**DOSTARCZONO ✓**

Cała złożoność znajdująca się pomiędzy przyciskiem **WYŚLIJ** a statusem **DOSTARCZONO** powinna pozostać zadaniem BASTION.

---

# 40. Kryterium sukcesu projektu

Sukcesem BASTION nie jest osiągnięcie największej liczby funkcji.

Sukcesem jest sytuacja, w której normalne środki komunikacji przestały działać, członkowie rodziny są rozdzieleni, nie istnieje bezpośrednie połączenie pomiędzy nimi, a mimo tego krótka i ważna wiadomość wykorzystuje dostępne urządzenia, radio, Bluetooth oraz przemieszczających się ludzi i ostatecznie znajduje drogę do właściwego odbiorcy.

To jest podstawowy sens istnienia BASTION.