How to use Arabic and Roman page numbers in one document?

Hi. In essence, you want something like this:

#set page(width: 5cm, height: 2cm, footer-descent: 0pt, margin: 3mm)
#set pagebreak(weak: true)

#set page(numbering: "I")

= I First section
#pagebreak()

#let saved-page = state("saved-page")
#context saved-page.update(counter(page).get())
#set page(numbering: "1")
#counter(page).update(1)

= 1 Main section
#pagebreak()

= 2 Main section
#pagebreak()

#set page(numbering: "I")
#context counter(page).update(saved-page.get())

= II Last section
#pagebreak()

= III Last section

You can create a bunch of wrappers, but if it’s in the main file that doesn’t have anything, then I think it’s fine to leave it as is, because it explains itself pretty well. You can add intention comments.