There is no perfect solution for this. If you lock your game to a specific resolution, then there must be some scaling if the user has a different monitor (and it could be 720p or 4K, you have to make it work on everything). To have perfect scaling (not blurred) you need to use integer scaling. This means it will only scale to whole resolutions. So if the game is 360p is will stay at that resolution (with a black border) until reaching 720p, then it will be 2x. This keeps the art crisp but is not great because people have all resolution monitors.
Otherwise there will be some scaling. You can disable filtering on the viewport, and allow it to scale by default, and this will be the easiest thing. You can do this by getting the root viewport texture and setting flags to 0. This will be pixelated and have some problems, but it is easy. You can also use filtering and just accept that the game will be slightly blurry. Using stretch shrink helps. So set the game to 360p, set shrink to 2, and the game will display pixel perfect at 720p, but then scale with filtering to higher resolutions. This may be the best compromise.